2012-06-28 21 views
1

我现在用的是<shape>标签是这样的:如何更改从Java代码使用setBackgroundResource()的ImageView的背景颜色?

<?xml version="1.0" encoding="UTF-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#00FFFFFF" /> 
    <stroke android:width="1dp" android:color="#FFFFFFFF" /> 
    <padding android:left="1dp" android:top="1dp" android:right="1dp" 
    android:bottom="1dp" /> 
</shape> 

我有很多意见我在GridView的<shape>标签创建,我需要更改在此处设置的部分:

<solid android:color="#00FFFFFF" /> 

,并设置另一种颜色,但我不知道怎么... 我试图用ImageView.Adapter这样的:

imageView = new ImageView(context); 
     imageView.setLayoutParams(new GridView.LayoutParams(160, 105)); 
     imageView.setBackgroundColor(myBackgroundColors[position]); 
     imageView.setBackgroundResource(R.drawable.border); 

我在调用setBackgroundResource()和XML之前设置了背景颜色,我使用透明颜色,但它不起作用......任何想法?

+0

背景资源设置是否正确? – matt5784

回答

3

在xml中使用<shape />Shape Drawable)标记时,编译的资源不是imageview;它编译成一个GradientDrawable<solid />标签定义了一种纯色以填充定义的形状,并将其设置为android:color。因此,要改变这个编程方式,你应该使用setColor()方法。

+0

这是完美的,男人!现在它终于起作用了。非常感谢你! :) – west44

+0

如果有任何代码段然后发布。看起来很棒 – Harshid