使图像创建淡入淡出效果创建阿尔法梯度(Create alpha gradient on image

2019-07-31 04:52发布

我怎样才能在图像上应用一个alpha梯度,它仅仅是线性消失? 现在,我创建单位宽度的矩形,并用它来与阿尔法值喷漆的对象在一个循环中被改变绘制位图。 我只是做它,因为我想不出别的。 因此,一个更合适的方法会更好。

Bitmap bitmap = BitmapFactory.decodeStream(is);
Bitmap bmp = Bitmap.createScaledBitmap(bitmap, 100, 151, true));
bitmap.recycle();

Rect Rect1 = new Rect(0, 0, 100, 100);
Rect Rect2 = new Rect(100, 0, 101, 100);

Paint paint = new Paint();

canvas.drawBitmap(bmp, Rect1, Rect1, null);
while (paint.getAlpha() != 0) {
    paint.setAlpha(paint.getAlpha() - 5);
    canvas.drawBitmap(bmp, Rect2, Rect2, paint);
    Rect2.set(Rect2.left + 1, Rect2.top, Rect2.right + 1, Rect2.bottom);
}

像这样的事情

PS我试图为动态壁纸做到这一点。

Answer 1:

也许,所需的行为可能是仅有的意见操作满足。 对于它,你应该:

  • 准备形状绘制

RES /绘制/ gradient_shape.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
            android:startColor="#00FFFFFF"
            android:endColor="#FFFFFFFF"
            android:type="linear" />
</shape>
  • 定义布局:activity_main.xml中

     <ImageView android:id="@+id/photo" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/photo" android:src="@drawable/gradient_shape" /> 

    这里绘制/照片是刚刚的JPEG文件夹可绘制;

  • 一些建议下面的代码添加到活性(它实际上,取决于器件天然构型和似乎是多余的用于现在> 3.0的设备):

     public void onAttachedToWindow() { super.onAttachedToWindow(); Window window = getWindow(); window.setFormat(PixelFormat.RGBA_8888); } 

从那以后,我已经观察了我的4.1设备上的以下内容:

它看起来像梯度。 我仍然不知道这是否就是你要找的。



文章来源: Create alpha gradient on image to create fade effect