动态地改变资源文件的名称中使用?(Dynamically change the name of th

2019-10-16 17:48发布

它可以这样做:

if (colorScheme == 1)
    button.setBackgroundResource(R.drawable.button + "_1")

为了使用R.drawable.button_1的资源,该按钮的颜色方案1,如果有一个名为button_1.png,button_2.png,button_3.png在绘制文件夹中。 (动态地使用不同的资源文件,基于正在使用的颜色方案相同的UI元素?)

谢谢,

Answer 1:

我所做的使用则getIdentifier()的东西simular:

int resId = context.getResources().getIdentifier("button_1","drawable",context.getPackageName());
button.setBackgroundResource(resId);


Answer 2:

为了它是动态的,会出现需要一些代码。 你可以在这样的XML设置您的布局:

<Button 
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />

然后引用它在你的代码是这样的:

int resId = context.getResources().getIdentifier("button_1","drawable",context.getPackageName());
Button button = (Button view.findViewById(R.id.button1);
button.setBackgroundResource(resId);

我没有测试过这一点,但是这应该给你的想法。



Answer 3:

R.drawable.button_n在阵列int res[]然后通过调用它们button.setBackgroundResource(res[i])



文章来源: Dynamically change the name of the resource file to be used?