【问题标题】:How can I make image opaque to some level?如何使图像在某种程度上不透明?
【发布时间】:2011-01-14 18:14:02
【问题描述】:

我想知道如果在图像视图中设置或设置为相对布局的背景,是否可以使图像不透明。

如何使用图像视图或相对布局动态设置图像使图像不透明,或者是否有任何其他选项可以动态设置图像及其不透明度?

我还希望同一张图像在两个方向上旋转,也可以放大和缩小到任何级别。

提前致谢

【问题讨论】:

  • 我知道的一种方法是进行图像预处理(为此使用位图函数),然后动态地(从代码)将其设置为相对布局的背景或 ImageView 的 src。但我想这不是你想要的。您想从控件本身执行此操作,但除了样式之外,我没有看到任何属性。
  • @Zelimir - 你能用你知道的例子解释一下吗
  • 我已经添加了我的答案。它描述了原理,因此您可以轻松地根据自己的需要进行调整。
  • 如果你想让它不透明(透明)到某种程度,请将 aplha 值 128 从代码示例更改为 0-255 之间的其他数字。
  • @Zelimir -好的!谢谢你的回答,真的很有帮助

标签: android image


【解决方案1】:

下面的工作和测试代码。

private void applyTransformToImageView(int code)
{
    Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2);
    Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas tempCanvas = new Canvas(bmResult); 

    switch (code)
    {
        case CHANGE_TRANSPARENCY:
        {
            Paint alphaPaint = new Paint();
            alphaPaint.setAlpha(128);
            tempCanvas.drawBitmap(bmpOriginal, 0, 0, alphaPaint);               
        }
        break;

        case ROTATE:
        {
            tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2);
            tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
        }
        break;

        case ZOOM_IN:
        {               
            Rect zoomRegion = new Rect();
            zoomRegion.left = 0;
            zoomRegion.top = 0;
            zoomRegion.right = bmpOriginal.getWidth()/2;
            zoomRegion.bottom = bmpOriginal.getHeight()/2;

            Rect display = new Rect();
            display.left = 0;
            display.top = 0;
            display.right = bmpOriginal.getWidth();
            display.bottom = bmpOriginal.getHeight();

            tempCanvas.drawBitmap(bmpOriginal, zoomRegion, display, null);
        }
        break;

        default:
    }

    mImageView.setImageBitmap(bmResult);            
}
  • 将 alpha 设置为半透明 - 值 128
  • 围绕原始图像中心旋转 90 度
  • 放大原始图像的左上象限

【讨论】:

    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 2012-12-01
    • 2011-07-01
    • 1970-01-01
    • 2021-06-05
    • 2011-04-07
    相关资源
    最近更新 更多