介绍
如何正确的使用Android中的图片工具类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
使用方法如下:
进口java.io.ByteArrayOutputStream; 进口java.io.File; 进口java.io.FileNotFoundException; 进口java.io.FileOutputStream; 进口java.io.IOException; 进口android.content.Context; 进口android.graphics.Bitmap; 进口android.graphics.Bitmap.CompressFormat; 进口android.graphics.Bitmap.Config; 进口android.graphics.BitmapFactory; 进口android.graphics.Canvas; 进口android.graphics.ColorMatrix; 进口android.graphics.ColorMatrixColorFilter; 进口android.graphics.LinearGradient; 进口android.graphics.Matrix; 进口android.graphics.Paint; 进口android.graphics.PorterDuff; 进口android.graphics.PorterDuff.Mode; 进口android.graphics.PorterDuffXfermode; 进口android.graphics.Rect; 进口android.graphics.RectF; 进口android.graphics.Shader; 进口android.graphics.drawable.BitmapDrawable; 进口android.graphics.drawable.Drawable;/* * *图片工具类 * @author wwj * 2013/7/3 */公开课ImageUtil {/* *图片的八个位置* */公共静态最终int顶级=0;//上 公共静态最终int=1;//下 公共静态最终int=2;//左 公共静态最终int右=3;//右 公共静态最终int LEFT_TOP=4;//左上 公共静态最终int LEFT_BOTTOM=5;//左下 公共静态最终int RIGHT_TOP=6;//右上 公共静态最终int RIGHT_BOTTOM=7;//右下/* * *图像的放大缩小方法 * @param src源位图对象 * @param scaleX宽度比例系数 * @param写入scaleY高度比例系数 * @return返回位图对象 */公共静态位图zoomBitmap(位图src, scaleX浮动,浮动写入scaleY) { 矩阵矩阵=new矩阵(); 矩阵。setScale (scaleX写入scaleY); 位图t_bitmap=位图。createBitmap (src, 0, 0, src.getWidth (), src.getHeight(),矩阵,true); 返回t_bitmap; }/* * *图像放大缩小,根据宽度和高度 * @param src * @param宽度 * @param高度 * @return */公共静态位图zoomBimtap(位图src, int宽度,int高度){ 返回位图。createScaledBitmap (src,宽度,高度,真的); }/* * *将可拉的转为位图对象 * @param可拉的 * @return */公共静态位图drawableToBitmap(可拉的可拉的){ 返回((BitmapDrawable)可拉的).getBitmap (); }/* * *将位图转换为可拉的对象 * @param位图 * @return */公共静态可拉的bitmapToDrawable(位图的位图){ 可拉的可拉的=new BitmapDrawable(位图); 返回可拉的; }/* * *位图转byte [] * @param位图 * @return */公共静态byte [] bitmapToByte(位图的位图){ ByteArrayOutputStream=新ByteArrayOutputStream (); bitmap.compress (Bitmap.CompressFormat.PNG, 100年); 返回out.toByteArray (); }/* * * byte[]转位图 * @param数据 * @return */公共静态位图byteToBitmap (byte[]数据){ 如果(数据)。长度!=0){ 返回BitmapFactory.decodeByteArray(数据、0 data.length); } 返回null; }/* * *绘制带圆角的图像 * @param src * @param半径 * @return */公共静态位图createRoundedCornerBitmap(位图src, int半径){ 最后一个int w=src.getWidth (); 最后一个int h=src.getHeight ();//高清量32位图 位图的位图=位图。createBitmap (w h Config.ARGB_8888); 涂漆=new (); 帆布画布=新画布(位图); 画布。drawARGB (0, 0, 0, 0); paint.setColor (0 xff424242);//防止边缘的锯齿 paint.setFilterBitmap(真正的); 矩形矩形=new矩形(0,0 w h); RectF RectF=new RectF(矩形);//绘制带圆角的矩形 画布。drawRoundRect (rectf,半径,半径、油漆);//取两层绘制交集,显示上层 油漆。setXfermode(新PorterDuffXfermode (PorterDuff.Mode.SRC_IN));//绘制图像 画布。drawBitmap (src,矩形,矩形、油漆); 返回位图; }/* * *创建选中带提示图片 * @param上下文 * @param srcId * @param tipId * @return */公共静态可拉的createSelectedTip(上下文语境、int srcId int tipId) { 位图src=https://www.yisu.com/zixun/BitmapFactory.decodeResource (context.getResources (), srcId); 位图提示=BitmapFactory.decodeResource (context.getResources (), tipId); 最后一个int w=src.getWidth (); 最后一个int h=src.getHeight (); 位图的位图=位图。createBitmap (w h Config.ARGB_8888); 涂漆=new (); 帆布画布=新画布(位图);//绘制原图 画布。drawBitmap (src, 0, 0,油漆);//绘制提示图片 画布。drawBitmap(提示,(w - tip.getWidth()), 0,油漆); 返回bitmapToDrawable(位图); }/* * *带倒影的图像 * @param src * @return */公共静态位图createReflectionBitmap(位图src) {//两个图像间的空隙 最后int间距=4; 最后一个int w=src.getWidth (); 最后一个int h=src.getHeight ();//绘制高质量32位图 位图的位图=位图。createBitmap (w h + h/2 +间距,Config.ARGB_8888);//创建燕X轴的倒影图像 矩阵m=新矩阵(); m。setScale (1,1); 位图t_bitmap=位图。createBitmap (src, 0 h/2 w h/2 m, true); 帆布画布=新画布(位图); 涂漆=new ();//绘制原图像 画布。drawBitmap (src, 0, 0,油漆);//绘制倒影图像 画布。drawBitmap (t_bitmap 0 h +间距、油漆);//线性渲染-沿Y轴高到低渲染 材质材质=new LinearGradient (0 h +间隔0 h +空间+ h/2, 0 x70ffffff 0 x00ffffff Shader.TileMode.MIRROR); paint.setShader(材质);//取两层绘制交集,显示下层。 油漆。setXfermode(新PorterDuffXfermode (Mode.DST_IN));//绘制渲染倒影的矩形 画布。绘制矩形(0 h +间距w h + h/2 +间距,油漆); 返回位图; }/* * *独立的倒影图像 * @param src * @return */null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何正确的使用Android中的图片工具类