【问题标题】:Android how to set opacity in bitmap xmlAndroid如何在位图xml中设置不透明度
【发布时间】:2012-06-03 18:07:00
【问题描述】:

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

【问题讨论】:

  • 我将 android:alpha=".5" 添加到位图定义中,但没有成功。其他人能解决这个问题吗?

标签: android xml bitmap drawable alpha-transparency


【解决方案1】:

如果您在 ImageView 中显示位图,您可能可以使用 ImageView.setAlpha(int) 方法。但是,如果 ImageView 是通过 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;
    }

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

Documentation 来自 developer.android.com 的 Bitmap。

【讨论】:

  • 感谢您的意见。但我想在 xml 中设置不透明度,以便稍后在选择器中使用。
  • @ComicSansMSLover:我在选择器中使用了android:alpha="0.6",但它在 APL 20 级及以下级别中不起作用。你有办法做到这一点吗?
猜你喜欢
  • 1970-01-01
  • 2011-02-19
  • 2011-07-20
  • 2014-04-19
  • 1970-01-01
  • 2014-09-05
  • 2011-04-07
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多