我正在AndroidStudio中尝试将图像设置为在相机拍摄后显示在屏幕上。这在模拟器上完美运行但是当我在我的设备(Nexus 5)上测试时,图像没有显示出来。
我尝试缩小我的图像并没有工作,我也尝试在我的drawables文件夹中使用一个小图像来确保它不是文件路径问题(可绘制的图像也显示在模拟器上)但不是在我的手机上)。我也尝试将位图转换为drawable并将其设置为imageView的背景,这也没有用。我不知道还有什么可以尝试。
编辑:我应该补充一点,如果我将XML中的图像显式添加为背景,它将显示在我的设备上,这让我觉得它是我的java。另一方面,我可以使用相同的java代码让图像显示在另一个活动上,这让我觉得它是布局。
File file = cameraShot;
ImageView leftEye = (ImageView) view.findViewById(R.id.ghostAlign);
if(leftEye != null) {
Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath());
leftEye.setImageBitmap(bmp);
}
布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cameraFrag"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foreground="?selectableItemBackground"
android:tag="ScopiCamera"
tools:ignore="UnusedAttribute">
<FitTextureView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/texture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
<ImageView
android:id="@+id/ghostAlign"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="false"
android:alpha="0.5" />
</FrameLayout>
答案 0 :(得分:1)
首先检查
google photo in nexus5 enable status?
如果谷歌照片设置禁用
无法归档路径的使用&amp;文件打开
(检查:使用文件maneger&#34; file.getAbsolutePath()&#34;)
无法使用图库,naxus的Google帐户停用状态
-
第二 textureView没用_检查
下一个代码可能吗?
公共类MainActivity扩展了Activity {
static final int REQUEST_IMAGE_CAPTURE = 1;
ImageView leftEye;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
leftEye = (ImageView) findViewById(R.id.ghostAlign);
dispatchTakePictureIntent();
}
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
if(leftEye != null) {
Bitmap imageBitmap = (Bitmap) extras.get("data");
leftEye.setImageBitmap(imageBitmap);
}
}
}
}
如果imageview上的位图看到了。 我认为,AbsolutePath错误
答案 1 :(得分:1)
我建议您查看加载图片是否存在内存问题。请参阅doc中的this page,以便在加载图片时减少内存消耗。
我也有这个问题,图像在其他设备上打开但在我的手机上没有打开。也许通过正确加载你的位图,它会起作用。