您好我试着解释一下我的意思但是如下:
<ImageView
android:id="@+id/imageLogo"
android:src="@drawable/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
我希望src是一个字符串,因此很容易为需要使用它的其他用户进行编辑。问题是android:src不接受带有文件名的@ string / logo。
编辑:要解释一下:我希望我的图像src具有灵活性,所以如果我的客户想要更改他/她的徽标,他/她只需要转到string.xml并更改字符串的值有徽标的名称。但是现在当我考虑它时,他们已经需要访问drawable文件夹来更改它们的图像,所以感谢所有的帮助:D
答案 0 :(得分:2)
int resourceId = Activity.getResources().getIdentifier(getString(R.string.myComapnyLogo), "drawable", "your.package.name");
image.setImageResource(resourceId);
这里使用getString(R.string.myComapnyLogo)
在运行时从xml文件中获取String。
请参阅此documentation。
答案 1 :(得分:1)
android:src是指可绘制的图像资源,您不能将其更改为String资源。如果需要,您可以将图像的名称更改为android:src =&#34; @ drawable / imagename&#34;并重命名相应目录中的文件
答案 2 :(得分:1)
你不能在xml中将src作为字符串。
但是您在调用活动中编写自己的代码以使用字符串资源设置图像源。 为此,您必须将您的图像文件放在资产中,您可以参考下面的代码
ImageView view = findViewById(R.id.imageLogo);
AssetManager assetManager = getAssets();
InputStream istr = null;
try {
//R.string.yourstring will be like "sample.png"
istr = assetManager.open(getResources().getString(R.string.yourstring));
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
view.setImageBitmap(bitmap);