我有一个我想改变的特定版面的图片视图。我尝试过几种不同的方式(通过.java)......但是图像实际上并没有改变,而且我不太确定我做错了什么。我想我的问题是"刷新"显示新图像的布局?
XML看起来像这样:
<ImageView
android:id="@+id/patientImage1"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/toExam"
android:src="@drawable/cxr_ap_1"
android:contentDescription="Sample patient picture"
/>
我想将它从drawable cxr_ap_1.png切换到chestpain1ptimage.png。以下是我为此所做的事情:
protected void setPtImage(){
setContentView(R.layout.activity_patients_room);
//Sets the image used for the patient icon.
String ptImage = MainActivity.CaseBridge.GetPtImage();
ImageView ptImageView = new ImageView(this);
ptImageView = (ImageView) findViewById(R.id.patientImage1);
int image =R.drawable.chestpain1ptimage;
Drawable dimage = getResources().getDrawable(image);
ptImageView.setImageDrawable(dimage);
}
setPtImage()由onResume()调用。我知道它被正确调用,因为我使用了一些调试toast-stuff来检查......但正如我所说,图像没有变化。
我也尝试过:
int image =R.drawable.chestpain1ptimage;
ptImageView.setImageResource(image);
那也没有用。显示的图像仍为cxr_ap_1.png。救命? :)
编辑:哦。我也试过投掷:ptImageView.invalidate();
应该强制刷新(可能?),但这也不起作用。