首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Reflection成效

2012-09-07 
Reflection效果倒影效果,简化版package com.nicoimport android.app.Activityimport android.graphics.B

Reflection效果

倒影效果,简化版

package com.nico;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.LinearGradient;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.PorterDuff;import android.graphics.PorterDuffXfermode;import android.graphics.AvoidXfermode.Mode;import android.graphics.Bitmap.Config;import android.graphics.Shader.TileMode;import android.os.Bundle;import android.widget.ImageView;public class TestActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 获取图片的bitmap对象Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.qm);// 调用生成带倒影的bitmapBitmap b = getFBitmap(bmp);ImageView img = (ImageView) findViewById(R.id.img);// 生成imageviewimg.setImageBitmap(b);}public Bitmap getFBitmap(Bitmap bmp) {// 画布Canvas canvas = new Canvas();// 矩阵Matrix matrix = canvas.getMatrix();// 缩放matrix.preScale(1, -1);// 生成带倒影的bitmap打底图Bitmap allbitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight()+ bmp.getHeight() / 2, Config.ARGB_8888);// 设置为画布背景canvas.setBitmap(allbitmap);Paint dp = new Paint();// 将初始图像画上去canvas.drawBitmap(bmp, 0, 0, dp);Paint p = new Paint();// 绘制下半部分的图像canvas.drawRect(0, bmp.getHeight(), bmp.getWidth(),bmp.getHeight() / 2, p);// 绘制下边部分的图像Bitmap flenbmp = Bitmap.createBitmap(bmp, 0, bmp.getHeight() / 2, bmp.getWidth(), bmp.getHeight() / 2, matrix, false);//将btmap 绘制到画布上canvas.drawBitmap(flenbmp, 0, bmp.getHeight(), null);Paint paint = new Paint();//渐变的效果,不是很清楚LinearGradient shader = new LinearGradient(0, bmp.getHeight(), 0,allbitmap.getHeight(), 0x70ffffff, 0x00ffffff, TileMode.CLAMP);paint.setShader(shader);paint.setXfermode(new PorterDuffXfermode((PorterDuff.Mode.DST_IN)));//绘制下面的图片的框,并使用到设置好参数的paintcanvas.drawRect(0, bmp.getHeight(), bmp.getWidth(), allbitmap.getHeight() , paint);return allbitmap;}}

?

?

热点排行