Android如何在位图xml中设置不透明度

时间:2012-05-29 13:47:45

标签: android xml bitmap drawable alpha-transparency

我需要通过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标签,它会起作用,但我没有成功。

1 个答案:

答案 0 :(得分:3)

如果您在ImageView中显示位图,则可以使用ImageView.setAlpha(int)方法。但是,如果通过RemoteViews接收ImageView,就像更新窗口小部件一样,您将无法调用此方法(如果您尝试通过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;
    }

更多info。和你一样最常见的问题。 How to Set Opacity (Alpha) for View in Android

来自developer.android.com的

Documentation位图。