我有以下layout.xml
:
<LinearLayout
android:id="@+id/layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="50dp"
android:src="@drawable/logo"/>
...
</LinearLayout>
我像这样设置父LinearLayout
的背景颜色:
LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout);
layout.setBackgroundColor(Color.parseColor("#727272"));
layout.setAlpha(0.5f);
然而,ImageView
(id:image)有色。有没有办法在设置父布局的背景颜色时不调色ImageView
?
答案 0 :(得分:0)
事实证明,图像是有色的,因为我将setAlpha称为父布局:
layout.setAlpha(0.5f);
但是,我需要为父布局设置50%的不透明度。因此,我使用以下方法为父布局的背景颜色设置Alpha和RGB,并且它可以工作:设置父布局的背景颜色而不会着色孩子的图像。
LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout);
layout.setBackgroundColor(BitmapDrawableUtility. getColorByOpacityPercentage(calculateOpacity(Color.parseColor("#727272"), 50));
public static int getColorByOpacityPercentage(int color, double percentage) {
int transparency = (int) Math.round((percentage / 100.0) * 255.0);
return Color.argb(transparency, Color.red(color), Color.green(color), Color.blue(color));
}