如何将图像设置为某个不透明度水平?

3

我想知道是否可以在图片视图中设置图片或将其设置为相对布局的背景时使其不透明。

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

我还希望同一张图片能够以两个方向旋转,并且可以缩放到任意级别。

提前感谢。


我知道的一种方法是进行图像预处理(使用Bitmap函数),然后动态地(从代码中)将其设置为RelativeLayout的背景或ImageView的src。但我猜这不是你想要的。你可能想从控件本身实现,但我没有看到任何属性可以做到这一点,除了Style。 - Zelimir
@Zelimir - 你能举个例子来解释一下吗? - Nikki
我已经添加了我的答案。它描述了原则,因此您可以轻松地根据自己的需求进行调整。 - Zelimir
如果你想将它变得不透明(透明),请将代码示例中的alpha值128更改为0-255之间的其他数字。 - Zelimir
@Zelimir - 我只想问一件事,我们能否在触摸图像时旋转图像,就像手指移动到任意角度一样。 - Nikki
1个回答

6
下面是经过测试的工作代码。
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度
  • 缩放到原始图像的左上象限

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接