以编程方式更改ImageView ImageView
当我以编程方式更改图像时,它将在布局文件中最初设置的旧图像顶部显示新图像?
这是我的布局文件的一个片段:
<LinearLayout android:layout_width="match_parent" android:layout_height="39dp" android:gravity="center_vertical" > <ImageView android:id="@+id/qStatusImage" android:layout_width="16dp" android:layout_height="16dp" android:layout_margin="5dp" android:background="@drawable/thumbs_down" /> <TextView android:id="@+id/grp_child" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="@color/radio_colors" android:textStyle="normal" android:background="@color/grey" /> </LinearLayout>
和设置imageView的代码:
@Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { //Answers if(answersGroup != null) answersGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // int index = answersGroup.indexOfChild(findViewById(answersGroup.getCheckedRadioButtonId())); qImageView = (ImageView) V.findViewById(R.id.qStatusImage); if(ans ==0 || ans == 5){ // qSV.setImageResource(0); qImageView.setImageResource(R.drawable.thumbs_up); } else qImageView.setImageResource(R.drawable.thumbs_down); } });
我错过了什么?
发生这种情况是因为您正在设置ImageView
的src而不是背景。
用这个代替:
qImageView.setBackgroundResource(R.drawable.thumbs_down);
这是一个讨论两种方法之间差异的线索。
在XML中使用:
android:src="@drawable/image"
来源用途:
imageView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.your_image));
在您的图像视图的XML中,你有android:background="@drawable/thumbs_down
将其更改为android:src="@drawable/thumbs_down"
目前它将该图像作为背景放置在视图中,而不是其中的实际图像。
qImageView.setImageResource(R.drawable.img2);
我认为这会帮助你
在XMLdevise中
android:background="@drawable/imagename android:src="@drawable/imagename"
通过代码绘制图像
imageview.setImageResource(R.drawable.imagename);
服务器映像
Glide.with(context).load(url) .placeholder(R.drawable.image) .into(imageView); Picasso.with(context).load(url) .placeholder(R.drawable.image) .into(imageView);