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