Android 将图像保存到SD卡不工作
底部有一个问题,我正在尝试创建一个案例来将图像保存到SD卡,但它不工作,我不知道为什么。 我认为这与getRawResource有关,但仍然不确定 谢谢你的帮助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
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保存图像。