Android ImageView在模拟器上显示,但在设备上不显示

时间:2017-03-23 00:08:08

标签: android android-layout

我正在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>

2 个答案:

答案 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,以便在加载图片时减少内存消耗。

我也有这个问题,图像在其他设备上打开但在我的手机上没有打开。也许通过正确加载你的位图,它会起作用。