use*_*874 7 java android android-bitmap
我有一个非常简单的布局与ImageView.我的应用程序打开相机,保存图像,然后在ImageView中显示图像BitmapFactory.decodeFile.唯一的问题是它是旋转的.我理解a)这是由于手机的相机默认为横向,所以这需要在代码中处理,b)图像处理必须在与UI的单独线程中完成.
Android培训文档似乎适用于从资源ID而不是文件路径加载图像.这只会让事情变得棘手,因为我能够按照教程进行操作,但最终难以协调差异.
我当然是新手,所以如果有人能够给我一个高层次的概述,为了实现这个目标需要做些什么,我真的很感激.以下代码是我正在将位图添加到ImageView的位置.我假设我对单独线程的调用会进入onCreate?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_image);
Bitmap bm = BitmapFactory.decodeFile(MainActivity.image_path);
displayImageView = (ImageView) findViewById(R.id.myImageView);
displayImageView.setImageBitmap(bm);
}
Run Code Online (Sandbox Code Playgroud)
使用ExifInterface进行旋转
picturePath = getIntent().getStringExtra("path");
Bitmap bitmap = BitmapFactory.decodeFile(picturePath);
ExifInterface exif = new ExifInterface(picturePath);
int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
Matrix matrix = new Matrix();
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
matrix.postRotate(90);
break;
case ExifInterface.ORIENTATION_ROTATE_180:
matrix.postRotate(180);
break;
case ExifInterface.ORIENTATION_ROTATE_270:
matrix.postRotate(270);
break;
default:
break;
}
myImageView.setImageBitmap(bitmap);
bitmap.recycle();
Run Code Online (Sandbox Code Playgroud)
注意:这picturePath是选择Image的路径Gallery
| 归档时间: |
|
| 查看次数: |
9227 次 |
| 最近记录: |