首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android ImageView -如何不让imageview着色

Android ImageView -如何不让imageview着色
EN

Stack Overflow用户
提问于 2016-06-14 09:54:22
回答 1查看 448关注 0票数 2

我有以下layout.xml

代码语言:javascript
复制
    <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的背景颜色设置如下:

代码语言:javascript
复制
    LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout);
    layout.setBackgroundColor(Color.parseColor("#727272"));
    layout.setAlpha(0.5f);

但是,图像(id:ImageView )是有色的。有没有一种方法可以在设置ImageView的父布局的背景颜色时不对其着色?

EN

回答 1

Stack Overflow用户

发布于 2016-06-15 01:21:26

因为我调用了父布局的setAlpha,所以图像是有色的:

代码语言:javascript
复制
layout.setAlpha(0.5f);

但是,我需要为父布局设置50%的不透明度。所以我使用下面的方法来设置父布局的背景颜色Alpha和RGB,它是有效的:父布局的背景颜色是在不对孩子的图像进行着色的情况下设置的。

代码语言:javascript
复制
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));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37801784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档