android 字体倒影,[转载]android 处理 imageView  ,圆角 倒影,使用ImageUtil

package

com.android.tutor;

import

android.graphics.Bitmap;

import

android.graphics.Canvas;

import

android.graphics.LinearGradient;

import

android.graphics.Matrix;

import

android.graphics.Paint;

import

android.graphics.PixelFormat;

import

android.graphics.PorterDuffXfermode;

import

android.graphics.Rect;

import

android.graphics.RectF;

import

android.graphics.Bitmap.Config;

import

android.graphics.PorterDuff.Mode;

import

android.graphics.Shader.TileMode;

import

android.graphics.drawable.Drawable;

public class

ImageUtil {

//放大缩小图片

public

static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){

int width =

bitmap.getWidth();

int height =

bitmap.getHeight();

Matrix

matrix = new Matrix();

float

scaleWidht = ((float)w / width);

float scaleHeight = ((float)h /

height);

matrix.postScale(scaleWidht,

scaleHeight);

Bitmap newbmp = Bitmap.createBitmap(bitmap, 0,

0, width, height, matrix, true);

return

newbmp;

}

//将Drawable转化为Bitmap

public

static Bitmap drawableToBitmap(Drawable drawable){

int width =

drawable.getIntrinsicWidth();

int height =

drawable.getIntrinsicHeight();

Bitmap bitmap = Bitmap.createBitmap(width,

height,

drawable.getOpacity() != PixelFormat.OPAQUE ?

Bitmap.Config.ARGB_8888

:

Bitmap.Config.RGB_565);

Canvas canvas = new Canvas(bitmap);

drawable.setBounds(0,0,width,height);

drawable.draw(canvas);

return bitmap;

}

//获得圆角图片的方法

public

static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float

roundPx){

Bitmap

output = Bitmap.createBitmap(bitmap.getWidth(), bitmap

.getHeight(),

Config.ARGB_8888);

Canvas

canvas = new Canvas(output);

final int

color = 0xff424242;

final Paint

paint = new Paint();

final Rect

rect = new Rect(0, 0, bitmap.getWidth(),

bitmap.getHeight());

final RectF

rectF = new RectF(rect);

paint.setAntiAlias(true);

canvas.drawARGB(0, 0, 0,

0);

paint.setColor(color);

canvas.drawRoundRect(rectF,

roundPx, roundPx, paint);

paint.setXfermode(new

PorterDuffXfermode(Mode.SRC_IN));

canvas.drawBitmap(bitmap,

rect, rect, paint);

return

output;

}

//获得带倒影的图片方法

public

static Bitmap createReflectionImageWithOrigin(Bitmap

bitmap){

final int

reflectionGap = 4;

int width =

bitmap.getWidth();

int height =

bitmap.getHeight();

Matrix

matrix = new Matrix();

matrix.preScale(1,

-1);

Bitmap

reflectionImage =

Bitmap.createBitmap(bitmap,

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(bitmap, 0,

0, null);

Paint

deafalutPaint = new Paint();

canvas.drawRect(0,

height,width,height + reflectionGap,

deafalutPaint);

canvas.drawBitmap(reflectionImage,

0, height + reflectionGap, null);

Paint paint

= new Paint();

LinearGradient shader = new

LinearGradient(0,

bitmap.getHeight(), 0,

bitmapWithReflection.getHeight()

+

reflectionGap, 0x70ffffff, 0x00ffffff,

TileMode.CLAMP);

paint.setShader(shader);

// Set the

Transfer mode to be porter duff and destination in

paint.setXfermode(new

PorterDuffXfermode(Mode.DST_IN));

// Draw a

rectangle using the paint with our linear gradient

canvas.drawRect(0, height,

width, bitmapWithReflection.getHeight()

+

reflectionGap, paint);

return

bitmapWithReflection;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值