Java 图像视图没有';t如果屏幕未旋转且其他图像视图已更新,则显示图像 问题

Java 图像视图没有';t如果屏幕未旋转且其他图像视图已更新,则显示图像 问题,java,android,Java,Android,我对Android上的2个ImageView有问题 第一个显示一个大图像。它位于RelativeLayout内,是一个自定义ImageView()。到目前为止,它一直表现良好 第二个也在RelativeLayout内,但它是一个“正常”图像视图。它显示蓝牙状态。显示它不会导致任何问题 然而,当我将代码以编程方式更改蓝牙指示灯的src时,第一个图像不再显示 问题是否来自自定义视图,它的工作不正确?我错过什么了吗 代码 如果我没有做这类事情: bluetoothState.setImageResou

我对Android上的2个ImageView有问题

第一个显示一个大图像。它位于RelativeLayout内,是一个自定义ImageView()。到目前为止,它一直表现良好

第二个也在RelativeLayout内,但它是一个“正常”图像视图。它显示蓝牙状态。显示它不会导致任何问题

然而,当我将代码以编程方式更改蓝牙指示灯的src时,第一个图像不再显示

问题是否来自自定义视图,它的工作不正确?我错过什么了吗

代码 如果我没有做这类事情:

bluetoothState.setImageResource(R.drawable.bluetooth_enabled192);
图像显示正确

以下是我使用的布局:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#1b1b1b"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen">

    <com.ortiz.touch.TouchImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/imageView"
        android:layout_gravity="center"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_above="@+id/textView" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="32dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/emptyDisplayText"
        android:layout_gravity="center_horizontal|bottom"
        android:gravity="center_vertical|center_horizontal"
        android:textAllCaps="true"
        android:elegantTextHeight="false"
        android:ellipsize="end"
        android:maxLines="1"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:textSize="15sp"
        android:textColor="#f3f3f3"
        android:id="@+id/textView"
        android:background="@drawable/rounded_rect"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true"
        android:layout_margin="10dp" />

    <ImageView
        android:layout_width="52dp"
        android:layout_height="52dp"
        android:id="@+id/bluetooth_state"
        android:scaleType="centerCrop"
        android:layout_alignParentTop="true"
        android:layout_alignRight="@+id/textView"
        android:layout_alignEnd="@+id/textView"
        android:layout_gravity="top|right"
        android:layout_margin="10dp"/>

</RelativeLayout>

期望结果

我得到的是没有中央图像的相同屏幕(文本和蓝牙指示正确显示)

铌 我开始对那个问题感到很沮丧。我只想显示2个图像。多谢各位

编辑 我没有提到,但是主图像是在后台加载的,使用异步任务。我曾尝试添加一些视图。无效()(在顶层布局、图像、蓝牙指示上),但没有解决问题


除了在旋转时出现的图像外,当我试图挤压不存在的图像时,它也会出现。试图通过编程方式重置缩放(hacky)也不起作用。

好的,我发现了错误

正如我所说,我有一个AsyncTask(
BitmapWorkerTask
),我调用它将位图加载到后台的ImageView中

它的名字是这样的:

new BitmapWorkerTask(imageView, getApplicationContext()).execute(filename);

getApplicationContext()
更改为
MainActivity。这个
getContext()
解决了这个问题:/(但是,我仍然发现它非常神奇,即使应用程序上下文!=活动上下文!)

好的,我发现了错误

正如我所说,我有一个AsyncTask(
BitmapWorkerTask
),我调用它将位图加载到后台的ImageView中

它的名字是这样的:

new BitmapWorkerTask(imageView, getApplicationContext()).execute(filename);

getApplicationContext()
更改为
MainActivity。这
getContext()
解决了这个问题:/(然而,我仍然发现,即使应用程序上下文!=活动上下文,它在如此长的时间内运行良好,这是非常神奇的!)

能否显示图像的显示方式确保仅在UI线程上完成对图像视图的所有更改,包括SetImageResourceThread runOnUIThread,仍然无效:/能否显示图像的显示方式确保仅在UI线程上完成对图像视图的所有更改,包括SetImageResourceThread runOnUIThread,仍然不起作用:/