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

扑克牌游戏中图片常用处理

2012-09-25 
扑克游戏中图片常用处理public class ImageUtil {?? ?????? ??? //放大缩小图片?? ??? public static Bitm

扑克游戏中图片常用处理

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;??
??? }??
??????
}?

?

热点排行