android:图片处理(本地uri图片显示,本地uri转为bitmap和网络uri转为bitmap显示) 2012-04-06 10:24:26| 分类: android 图片相关 | 标签: |字号大
中
小 订阅
设置imageView的图片:
1.参数为本地Uri
imageView.setImageURI(uri2); // content://media/external/images/media/63
比如调用系统相机 返回uri2。
onActivityResult(int requestCode, int resultCode, Intent data)
Uri uri2 = data.getData();
2.参数为Bitmap
imageView.setImageBitmap(...);
A.把本地图片转为bitmap,
Uri uri2 = data.getData();
String selectedImagePath2 = getPath(uri2); //selectedImagePath2=/mnt/sdcard/DCIM/100MEDIA/IMAG0054.jpg;
secondPhoto.setImageBitmap(BaseMean.lessenUriImage(selectedImagePath2));
/**
* change uri to path string
* @param uri
* @return
*/
public String getPath(Uri uri)
{
String[] projection = {MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
/**
* use to lessen pic 50%
* @param path sd card path
* @return bitmap
*/
public final static Bitmap lessenUriImage(String path)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bitmap = BitmapFactory.decodeFile(path, options); //此时返回 bm 为空
options.inJustDecodeBounds = false; //缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可
int be = (int)(options.outHeight / (float)320);
if (be <= 0)
be = 1;
options.inSampleSize = be; //重新读入图片,注意此时已经把 options.inJustDecodeBounds 设回 false 了
bitmap=BitmapFactory.decodeFile(path,options);
int w = bitmap.getWidth();
int h = bitmap.getHeight();
System.out.println(w+" "+h); //after zoom
return bitmap;
}
B.把网络图片转为bitmap
Bitmap photo;
String url_s;
url_s = (String)mData.get(position).get("image_url")+".size/m1.jpg";
photo= BaseMean.returnBitMap(url_s);
listItemView.mPhoto.setImageBitmap(photo);
/**
* return a bitmap from service
* @param url
* @return bitmap type
*/
public final static Bitmap returnBitMap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
HttpURLConnection conn;
conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return bitmap;
}
android 通过uri等方式读取图片资源
最新推荐文章于 2022-09-03 17:38:16 发布