5

我需要通过 xml 创建位图资源,例如:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/btn_home"
    >
</bitmap>

但我需要为此位图设置不透明度。有没有办法使用这个xml来做到这一点?我知道如果在位图标签中允许使用 Shape 标签,它会起作用,但我尝试了但没有成功。

4

1 回答 1

3

如果您在 ImageView 中显示位图,您可能可以使用该ImageView.setAlpha(int)方法。但是,如果 ImageView 是通过 RemoteViews 访问的,就像更新小部件时的情况一样,您将无法调用此方法(如果您尝试通过 RemoteViews 调用它,RemoteViews.setInt(int, String, int)则会收到一个异常告诉您)。

 private Bitmap adjustOpacity(Bitmap bitmap, int opacity)
    {
        Bitmap mutableBitmap = bitmap.isMutable()
                               ? bitmap
                               : bitmap.copy(Bitmap.Config.ARGB_8888, true);
        Canvas canvas = new Canvas(mutableBitmap);
        int colour = (opacity & 0xFF) << 24;
        canvas.drawColor(colour, PorterDuff.Mode.DST_IN);
        return mutableBitmap;
    }

更多信息。最常见的就像你的问题。如何在 Android 中为视图设置不透明度(Alpha)

来自 developer.android.com 的 Bitmap文档

于 2012-05-29T14:02:12.990 回答