- /**
- *1.放大缩小图片
- *
- *@parambitmap
- *@paramw
- *@paramh
- *@return
- */
- publicstaticBitmapzoomBitmap(Bitmapbitmap,intw,inth){
- intwidth=bitmap.getWidth();
- intheight=bitmap.getHeight();
- Matrixmatrix=newMatrix();
- floatscaleWidht=((float)w/width);
- floatscaleHeight=((float)h/height);
- matrix.postScale(scaleWidht,scaleHeight);
- Bitmapnewbmp=Bitmap.createBitmap(bitmap,0,0,width,height,
- matrix,true);
- returnnewbmp;
- }
- /**
- *2.获得圆角图片的方法
- *
- *@parambitmap
- *@paramroundPx
- *@return
- */
- publicstaticBitmapgetRoundedCornerBitmap(Bitmapbitmap,floatroundPx){
- Bitmapoutput=Bitmap.createBitmap(bitmap.getWidth(),bitmap
- .getHeight(),Config.ARGB_8888);
- Canvascanvas=newCanvas(output);
- finalintcolor=0xff424242;
- finalPaintpaint=newPaint();
- finalRectrect=newRect(0,0,bitmap.getWidth(),bitmap.getHeight());
- finalRectFrectF=newRectF(rect);
- paint.setAntiAlias(true);
- canvas.drawARGB(0,0,0,0);
- paint.setColor(color);
- canvas.drawRoundRect(rectF,roundPx,roundPx,paint);
- paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));
- canvas.drawBitmap(bitmap,rect,rect,paint);
- returnoutput;
- }
- /**
- *3.获得带倒影的图片方法
- *
- *@parambitmap
- *@return
- */
- publicstaticBitmapcreateReflectionImageWithOrigin(Bitmapbitmap){
- finalintreflectionGap=4;
- intwidth=bitmap.getWidth();
- intheight=bitmap.getHeight();
- Matrixmatrix=newMatrix();
- matrix.preScale(1,-1);
- BitmapreflectionImage=Bitmap.createBitmap(bitmap,0,height/2,
- width,height/2,matrix,false);
- BitmapbitmapWithReflection=Bitmap.createBitmap(width,
- (height+height/2),Config.ARGB_8888);
- Canvascanvas=newCanvas(bitmapWithReflection);
- canvas.drawBitmap(bitmap,0,0,null);
- PaintdeafalutPaint=newPaint();
- canvas
- .drawRect(0,height,width,height+reflectionGap,
- deafalutPaint);
- canvas.drawBitmap(reflectionImage,0,height+reflectionGap,null);
- Paintpaint=newPaint();
- LinearGradientshader=newLinearGradient(0,bitmap.getHeight(),0,
- bitmapWithReflection.getHeight()+reflectionGap,0x70ffffff,
- 0x00ffffff,TileMode.CLAMP);
- paint.setShader(shader);
- //SettheTransfermodetobeporterduffanddestinationin
- paint.setXfermode(newPorterDuffXfermode(Mode.DST_IN));
- //Drawarectangleusingthepaintwithourlineargradient
- canvas.drawRect(0,height,width,bitmapWithReflection.getHeight()
- +reflectionGap,paint);
- returnbitmapWithReflection;
- }
- /**
- *4.将Drawable转化为Bitmap
- *
- *@paramdrawable
- *@return
- */
- publicstaticBitmapdrawableToBitmap(Drawabledrawable){
- intwidth=drawable.getIntrinsicWidth();
- intheight=drawable.getIntrinsicHeight();
- Bitmapbitmap=Bitmap.createBitmap(width,height,drawable
- .getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
- :Bitmap.Config.RGB_565);
- Canvascanvas=newCanvas(bitmap);
- drawable.setBounds(0,0,width,height);
- drawable.draw(canvas);
- returnbitmap;
- }