Android

关注公众号 jb51net

关闭
首页 > 软件编程 > Android > Android设置透明度

Android设置改变透明度实例

投稿:yin

在Android开发中,透明度是很常见的一个属性,是指控制一个视图的不透明程度,取值范围从0到255,通过设置透明度能够实现图片、控件等UI元素的显示效果的调整,Android透明度对照表是开发过程中常用的工具之一,它能够帮助开发人员快速了解设置透明度的数值范围

在Android开发中,透明度是很常见的一个属性,是指控制一个视图的不透明程度,取值范围从0到255,0表示完全透明,255表示完全不透明,通过设置透明度能够实现图片、控件等UI元素的显示效果的调整,Android透明度对照表是开发过程中常用的工具之一,它能够帮助开发人员快速了解设置透明度的数值范围。

如何设置透明度

在Android中,设置透明度有多种方法:

方法一:使用setAlpha()方法

view.setAlpha(0.5f);

使用setAlpha()方法可以直接设置透明度,参数范围从0~1之间,0表示完全透明,1表示完全不透明。

方法二:使用setBackgroundAlpha()方法

public static void setBackgroundAlpha(Activity activity, float alpha) {
    WindowManager.LayoutParams lp = activity.getWindow().getAttributes();
    lp.alpha = alpha;
    activity.getWindow().setAttributes(lp);
}

通过设置Activity的Window属性,可以实现调整整个Activity的透明度。

方法三:使用xml文件设置透明度

android:alpha="0.5"

在xml文件中可以使用alpha属性设置透明度,同样范围从0~1,但是只能在API 11以上使用。

透明度表的使用

在日常开发中,经常需要手动计算透明度数值,这是件费时费力的事情。透明度表的出现,可以方便快速的查找对应的透明度数值。

下面是透明度表的示例代码:

public class AlphaTable {
    private static final SparseArray sAlphaTable = new SparseArray();

    static {
        sAlphaTable.put(0, 0.0f);
        sAlphaTable.put(1, 0.04f);
        sAlphaTable.put(2, 0.08f);
        sAlphaTable.put(3, 0.12f);
        sAlphaTable.put(4, 0.16f);
        sAlphaTable.put(5, 0.20f);
        sAlphaTable.put(6, 0.24f);
        sAlphaTable.put(7, 0.28f);
        sAlphaTable.put(8, 0.31f);
        sAlphaTable.put(9, 0.35f);
        // 省略241个数值......
        sAlphaTable.put(251, 0.98f);
        sAlphaTable.put(252, 0.99f);
        sAlphaTable.put(253, 0.99f);
        sAlphaTable.put(254, 1.0f);
        sAlphaTable.put(255, 1.0f);
    }

    public static float getAlpha(int index) {
        return sAlphaTable.get(index, 0.0f);
    }
}

使用透明度表可以非常方便的获取对应的透明度数值。只需要传入透明度的序号,就可以返回对应的透明度数值。

float alpha = AlphaTable.getAlpha(100);
view.setAlpha(alpha);

透明度数值

透明度数值是指表示不透明度的一个值,取值范围为0~255,其中0代表完全透明,255代表完全不透明。在设置透明度时,我们会用到一个涉及到透明度数值的API。

//设置视图的透明度,取值范围0~1
view.setAlpha(float alpha); 

//设置视图的透明度,取值范围0~255
view.getBackground().setAlpha(int alpha);

在上面的代码示例中,setAlpha()方法的参数为float类型,取值范围是0~1,表示视图的透明度。而getBackground().setAlpha()方法的参数为int类型,取值范围是0~255,表示背景的透明度。

图片透明度

对于Android应用中的图片,我们也可以设置它们的透明度,这可以通过在代码中设置透明度来实现,示例如下:

//获取原图
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image);

//根据原图创建一个新图,alpha参数为透明度
Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
Paint paint = new Paint();
paint.setAlpha(alpha);
canvas.drawBitmap(bitmap, 0, 0, paint);

在上面的代码示例中,我们通过调用Paint类的setAlpha()方法来设置图片的透明度,alpha的取值范围是0~255。

文本透明度

在Android应用中,文本部分的透明度也是可以设置的。我们可以通过设置TextView或EditText的textColor属性来实现,示例如下:

//设置TextView的文本透明度,取值范围0~255
text.setTextColor(Color.argb(alpha, 255, 255, 255));

//设置EditText的文本透明度,取值范围0~255
editText.setTextColor(Color.argb(alpha, 255, 255, 255));

在上面的代码示例中,我们通过调用argb()方法来设置文本的透明度,其中alpha的取值范围是0~255,后面三个参数分别代表颜色的红色、绿色和蓝色值,这三个参数的取值范围也是0~255。

背景透明度

对于应用中的背景,我们也可以设置背景的透明度。这可以通过在布局文件中的根布局中添加透明度属性来实现,代码示例如下:

//在根布局中添加透明度属性
android:alpha="0.5"

在上面的代码示例中,我们将根布局的透明度设置为0.5,这样就可以实现背景的透明效果。

动态改变透明度

在Android开发中,我们经常需要在一定条件下动态地改变视图的透明度,这可以通过代码来实现,示例如下:

//获得视图的透明度值
float alpha = view.getAlpha();

//改变视图的透明度值
view.setAlpha(alpha - 0.1f);

在上面的代码示例中,我们通过调用getAlpha()方法获取视图的透明度值,并通过setAlpha()方法改变视图的透明度值,从而实现动态改变透明度的效果。

总结

到此这篇关于Android设置改变透明度实例的文章就介绍到这了,更多相关Android设置透明度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文