1. 关于调用系统相册的 方式
方式一、
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
该方法弹出所有可以打开图片的工具 来提供打开的应用
方式二、
<span style="white-space:pre"> </span> Intent intent = new Intent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
该方法直接调用系统照相册 跳入系统相册选择界面
2.关于小内存手机选照片时候应用被系统 杀死的问题
在小内存手手机里偶尔会出现一中现象就是,开发的应用在放入后台后,不就打开就会crash,而且总是报nullpointException 很多时候都是因为,应用的数据被系统释放。这个是时候用到的方法一般只有一个就是恢复! (当然如果你不用静态变量或许也可以)
/**
* 保存状态
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
<span style="white-space:pre"> </span>//存储自己的数据
<span style="white-space:pre"> </span>outstate.putXXX()
<span style="white-space:pre"> </span>}
这个方法用来保存死之前的状态 也就是把死之前的数据进行备份到外部存储
/**
* 恢复状态
*/
@Override
protected void onreStoreInstanceState(Bundle savedbudle) {
//恢复自己的数据
xxx = outstate.getXXX()
}
3.关于选图后,打印out of memery 内存溢出错误,这是由于Bitmap.decode(path)方法引起的,这时候如果图片过大,很容易内存溢出,这时候不能直接读图片而是要通过:
//这个方法来读取
{ Bitmap selectedBitmap = null;
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(selectedPathString, opts);//这里主要是用来计算合适的大小
opts.inSampleSize =ImageCompressUtil.computeSampleSize(opts, -1, 2048 * 2048); //这里的2048*2048是最大尺寸
opts.inJustDecodeBounds = false;
try {
selectedBitmap = BitmapFactory.decodeFile(selectedPathString, opts);
} catch (OutOfMemoryError err) {
}
通过以上方法来读取大图那么 outof memery exception 就解决了!以上都是个人的一些见解!和网上搜到的东西!分享出来希望遇到 的人能少走弯路!