当我以编程方式更改图像时,它会在原来在布局文件中设置的旧图像的顶部显示新图像?
这是我的布局文件的一个片段:
<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.setImageResource(R.drawable.my_image);
答案的多样性可能会引起一些混乱。我们有
setBackgroundResource()
名称中带有Background
的方法都属于View
类,而不是专门属于ImageView
。但是由于ImageView
继承自View
,因此您也可以使用它们。名称中带有Image
的方法专门属于ImageView
。
View
方法彼此都执行相同的操作(尽管不建议使用setBackground Drawable()
),因此我们将只关注setBackground Resources()
。类似地,ImageView
方法都做同样的事情,所以我们只关注setImageResources()
。这些方法之间的唯一区别是它们传递的参数类型。
这是一个FrameLayout
,其中包含一个ImageView
。ImageView
最初没有任何图像。(我只添加了FrameLayout
,以便在其周围加上边框。这样您就可以看到ImageView
的边缘)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/border"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</RelativeLayout>
下面我们将比较不同的方法。
如果使用ImageView的setImageResource()
,则图像将保持其纵横比,并调整大小以适应需要。下面是两个不同的图像示例。
ImageView.setImageResources(R.drawable.sky);
ImageView.setImageResources(R.drawable.balloons);
另一方面,使用视图的setBackgroundResource()
,会导致图像资源被拉伸以填充视图。
imageView。挫折地面资源(R.可绘制天空)
视图的背景图像和ImageView的图像是分别绘制的,因此您可以同时设置它们。
imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);
在XML中使用:
android:src="@drawable/image"
来源和用途:
imageView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.your_image));
发生这种情况是因为您正在设置ImageView
的src,而不是背景。
改用这个:
qImageView.setBackgroundResource(R.drawable.thumbs_down);
这里有一个线程讨论这两种方法之间的差异。
我需要通过编程方式改变图标的色彩
我正在将图像设置为ImageView,但是图像不是从设备存储中拾取的,图像是由服务器发送的,我想在将图像设置到ImageView之前了解图像的方向。因此,是否可以使用其url和ExifInterface检查来自服务器的jpg图像的方向,然后根据需要更改其方向以设置为imageview?
问题内容: 我发现了只在Android N设备上才能复制的真正奇怪的错误。 在浏览我的应用程序时,可以更改语言。这是更改它的代码。 该代码在我的巡回活动(带电话)中效果很好,但是在接下来的所有活动中,所有String资源都是错误的。屏幕旋转将其修复。我该怎么办?我应该以其他方式更改Android N的语言环境还是仅仅是系统错误? PS这是我发现的。第一次启动MainActivity时(在我的旅
我做了一个均衡器来配合我的应用程序,但我不确定如何改变搜索栏的拇指和进度颜色。默认情况下,它似乎是粉红色的,这不符合我的应用程序的美学。
问题内容: 如何更改应用程序标签以更改从android中的Java代码显示的应用程序名称?我指的是: 在Android清单中 有什么方法可以更新 strings.xml 文件中的值? 问题答案: 目前尚不可能。它是AndroidManifest.xml文件中的固定字符串,无法在运行时更改。
问题内容: 如何以编程方式更改ActionBar中的MenuItem图标?我尝试使用 但这不起作用。这是我的代码: 主要活动 main.xml activity_main 这是我跑步后遇到的例外: 问题答案: 您不能在onCreate()的菜单项上使用findViewById(),因为菜单布局尚未膨胀。您可以创建一个全局Menu变量,并在onCreateOptionsMenu()中对其进行初始化,