我无法显示我使用第三方Android应用程序捕获的当前图像并在我自己的原生应用程序上显示它。只有操作栏,它总是一个空屏幕。但是,拍摄的照片可能位于我指定的文件夹中。
有人可以帮忙吗?非常感激!干杯:)
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/linear">
<ImageView android:id="@+id/imageView1"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:contentDescription="@string/desc"/>
</LinearLayout>
源代码:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case 0:
if(resultCode == Activity.RESULT_OK){
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
}
break;
case 1:
if(resultCode == RESULT_OK){
Uri selectedImage = data.getData();
imageView.setImageURI(selectedImage);
}
break;
}
}
}
答案 0 :(得分:0)
android:contentDescription="@string/desc"
将上面的行添加到ImageView的xml中,其中desc应该在string.xml中并将其设置为某个值。 看起来这样定义了简要描述视图内容的文本。此属性主要用于辅助功能。由于某些视图没有文本表示,因此可以使用此属性来提供此类属性。
ImageViews和ImageButtons等非文本小部件应使用contentDescription属性指定小部件的文本描述,以便屏幕阅读器和其他辅助功能工具可以充分描述用户界面。
String selectedImagePath = getPath(selectedImageUri);
Bitmap myBitmap = BitmapFactory.decodeFile(selectedImagePath);
imageView.setImageBitmap(bmp);
使用上面的代码
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);
}
答案 1 :(得分:0)
您是否在fileUri
中保存了Activity
的值?如果是,你是从保存的实例中恢复的吗?
如果不是,则在活动被销毁时可能会重置。