Android 将图像保存到SD卡不工作

Android 将图像保存到SD卡不工作,android,android-sdcard,Android,Android Sdcard,底部有一个问题,我正在尝试创建一个案例来将图像保存到SD卡,但它不工作,我不知道为什么。 我认为这与getRawResource有关,但仍然不确定 谢谢你的帮助 package com.nk_apps.random; import java.io.InputStream; import android.app.Activity; import android.content.Context; import android.content.res.TypedArray; import a

底部有一个问题,我正在尝试创建一个案例来将图像保存到SD卡,但它不工作,我不知道为什么。 我认为这与getRawResource有关,但仍然不确定

谢谢你的帮助

    package com.nk_apps.random;

import java.io.InputStream;
import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;

@SuppressWarnings("deprecation")
public class Main extends Activity {

    private Gallery gallery;
    private ImageView imgView;

    private Integer[] imgId = {
            R.drawable.image1,
            R.drawable.image2,
            R.drawable.image3,
            R.drawable.image4,
            R.drawable.image5,
            R.drawable.image6,
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imgView = (ImageView)findViewById(R.id.imageView01);    
        imgView.setImageResource(imgId[0]);

         gallery = (Gallery) findViewById(R.id.examplegallery);
         gallery.setAdapter(new AddImgAdp(this));

         gallery.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView parent, View v, int position, long id) {
                imgView.setImageResource(imgId[position]); 
            }
        });

    }

    public class AddImgAdp extends BaseAdapter {
        int GalItemBg;
        private Context cont;

        public AddImgAdp(Context c) {
            cont = c;
            TypedArray typArray = obtainStyledAttributes(R.styleable.Gallery1);
            GalItemBg = typArray.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 0);
            typArray.recycle();
        }

        public int getCount() {
            return imgId.length;
        }

        public Object getItem(int position) {
            return position;
        }

        public long getItemId(int position) {
            return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imgView = new ImageView(cont);

            imgView.setImageResource(imgId[position]);
            imgView.setLayoutParams(new Gallery.LayoutParams(170, 270));
            imgView.setScaleType(ImageView.ScaleType.FIT_XY);
            imgView.setBackgroundResource(GalItemBg);

            return imgView;}

            public void onClick(View v) {
                // TODO Auto-generated method stub

            switch (v.getId()){
            case R.id.bsaveImage:
                InputStream inps = getResources().openRawResource(GalItemBg);
                Bitmap bmp = BitmapFactory.decodeStream(inps);
                try{
                    MediaStore.Images.Media.insertImage(getContentResolver(), bmp, "Title" , "Hip-Hop Wallpapers");
                    Toast saveToast = Toast.makeText(Main.this, "The image has been saved.", Toast.LENGTH_SHORT);
                    saveToast.show();
                }catch(Exception e){
                e.printStackTrace();
                }
                break;
        }
    }

} }

您是否验证您是否具有SD卡的写入权限?(这是写入外部存储)


此外,您应该确保查看正确的装入点以找到映像(例如,对于某些设备,可以是“内部SD卡”)

是否出现异常?请在问题中添加有关错误的详细信息。到底发生了什么以及应该发生什么?您能提供
logcat
输出吗?最后的开关应该保存图像。到目前为止,它什么也没做。出于某种原因,logcat无法归档,这一定是因为我正在使用每晚的TouchWiz Jellybean ROM。尽管如此,即使在使用模拟器将某些内容保存到SD时,它也应该强制关闭,但这两者都没有发生任何事情。那么您是否检查了insertImage()返回的内容?它应该给你一个URL,如果它真的保存了一些东西到一个意想不到的地方,你就会得到信息。如果您得到null,那么您肯定需要得到logcat…按钮是从res/文件夹保存图像,而不是从URL保存图像。