正如 gnuanu 所建议的,setImageURI()
不适合在 UI 线程上用作读取和解码,这可能会导致延迟。
最好使用以下内容:-
setImageDrawable(android.graphics.drawable.Drawable) or setImageBitmap(android.graphics.Bitmap) and BitmapFactory instead.
这些方法仍然没有解决我的问题。当我用相机拍照并单击它发送到下一个活动时,这可能会导致延迟打嗝。
因此,最好在一段时间后转到另一项活动。 。只需一秒钟就可以完成它,非常方便。
解决我的问题的片段:-
final Intent picIntent = new Intent(CameraActivity.this,PicSaveActivity.class);
picIntent.putExtra("URI", pathUri.toString());
Handler handler = new Handler()
{
public void handleMessage(Message msg) {
startActivityForResult(picIntent, PICTAKEN);
};
};
Message msg = handler.obtainMessage();
handler.sendMessageDelayed(msg, 1000);
在下一个活动中,捕获 URI 并旋转图像,就像在横向模式下一样。
if(absPathUri!=null)
{
Bitmap myImg = BitmapFactory.decodeFile(absPathUri.getPath());
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap rotated = Bitmap.createBitmap(myImg, 0, 0, myImg.getWidth(), myImg.getHeight(),
matrix, true);
imgView.setImageBitmap(rotated);
}