gpt4 book ai didi

android - 图像未使用 setImageURI() 在 ImageView 中设置

转载 作者:太空狗 更新时间:2023-10-29 16:39:04 25 4
gpt4 key购买 nike

创建自己的相机,因为我需要 Focus ON 来拍照。相机按预期工作得很好。在 Activity 之间传递 URI

我在下一个屏幕中有 ImageView 用来设置图像

imgView.setImageURI(absPathUri);

检查 absPathUri 不为空。 ImagView 仍然是空白,没有图片。在 Debug模式下执行相同操作会在 ImageView 中显示图片。

谁能告诉我哪里做错了?

也发送广播重新扫描设备,但仍然没有成功执行以下代码段。

 Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(absPathUri.getPath());
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);

使用下面的代码 fragment 生成absPathUri

 if (Environment.MEDIA_MOUNTED.equals(state)) 
{
imageDirectory = new File(AppConstants.IMAGE_DIRECTORY_PATH);
}
else
{
imageDirectory = new File(AppConstants.IMAGE_DIRECTORY_PATH_DATA);
}

imageDirectory.mkdirs();
File tempFile = new File(imageDirectory, getVideoName()+ jpg);
Uri outputFileUri = Uri.fromFile( tempFile );
absPathUri = outputFileUri;


public static String getVideoName()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
try {
name = sdf.format(new Date(System.currentTimeMillis()));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return name;
}

下面是我用来在 xml 中显示 ImageView 的布局。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bg"
>

<ImageView
android:id="@+id/picView"
android:layout_above="@+id/buttonPanel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"
android:src="@drawable/accounts_glyph_password_default"
/>
<LinearLayout
android:id="@id/buttonPanel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
>

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onDiscard"
/>

<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:text="@string/save"
android:onClick="onSave"
android:textColor="#ffffff" />
</LinearLayout>
</RelativeLayout>

最佳答案

正如 gnuanu 所建议的,setImageURI() 不适合在 UI 线程上用作读取和解码,这可能会导致延迟问题。

最好使用以下内容:-

setImageDrawable(android.graphics.drawable.Drawable) 或 setImageBitmap(android.graphics.Bitmap) 和 BitmapFactory 代替。

这些方法仍然没有解决我的问题。当我用相机拍照并点击它发送到下一个 Activity 时,这可能会导致延迟问题。

所以最好在一段时间后转到另一个 Activity 。 .只需一秒钟即可轻松完成。

解决我的问题的 fragment :-

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);

在 Next Activity 中,捕获 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);
}

关于android - 图像未使用 setImageURI() 在 ImageView 中设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com