图片倒影

来源:互联网 发布:外贸独立站域名备案 编辑:程序博客网 时间:2024/04/29 20:20
实现方式:
1.计算得到图片阴影的大小
2.阴影是通过Canvas绘制得到的
package com.easymorse.picture;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuffXfermode;import android.graphics.Bitmap.Config;import android.graphics.PorterDuff.Mode;import android.graphics.Shader.TileMode;import android.graphics.drawable.BitmapDrawable;import android.os.Bundle;import android.widget.ImageView;public class MainActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ImageView imageView2 = (ImageView) findViewById(R.id.picture_qian);Bitmap bmp = ((BitmapDrawable) getResources().getDrawable(R.drawable.qian)).getBitmap();imageView2.setImageBitmap(createReflectedImage(bmp));}public static Bitmap createReflectedImage(Bitmap originalImage) {final int reflectionGap = 4;int width = originalImage.getWidth();int height = originalImage.getHeight();Matrix matrix = new Matrix();matrix.preScale(1, -1);Bitmap reflectionImage = Bitmap.createBitmap(originalImage, 0,height / 2, width, height / 2, matrix, false);Bitmap bitmapWithReflection = Bitmap.createBitmap(width,(height + height / 2), Config.ARGB_8888);Canvas canvas = new Canvas(bitmapWithReflection);canvas.drawBitmap(originalImage, 0, 0, null);Paint defaultPaint = new Paint();canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);canvas.drawBitmap(reflectionImage, 0, height + reflectionGap, null);Paint paint = new Paint();LinearGradient shader = new LinearGradient(0,originalImage.getHeight(), 0, bitmapWithReflection.getHeight()+ reflectionGap, 0x70ffffff, 0x00ffffff,TileMode.MIRROR);paint.setShader(shader);paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));canvas.drawRect(0, height, width, bitmapWithReflection.getHeight()+ reflectionGap, paint);return bitmapWithReflection;}}

0 0
原创粉丝点击