android的图片加载和伸缩处理

来源:互联网 发布:linux文件系统结构 编辑:程序博客网 时间:2024/04/29 12:01
 

public class GraphicUtils {
  /***
     * 加载本地图片
     * @param context:主运行函数实例
     * @param bitAdress:图片地址,一般指向R下的drawable目录
     * @return
     */

   public final Bitmap CreatImage(Context context, int bitAdress) {

           Bitmap bitmaptemp = null;

           bitmaptemp = BitmapFactory.decodeResource(context.getResources(),bitAdress);

           return bitmaptemp;

   }

  /***
    * 加载本地图片
    * @param url:图片地址,手机目录
    * @return
    */

   public final Bitmap CreateBitmapFromLocal(String url) {
       try {
        if(url == "")
         return null;
            FileInputStream fis = new FileInputStream(url);
            return BitmapFactory.decodeStream(fis);  ///把流转化为Bitmap图片       

         } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
       }
  }
 
//图片平均分割方法,将大图平均分割为N行N列,方便用户使用

   /***
    * 图片分割     
    * @param g
    * :画布
    * @param paint
    *:画笔
    * @param imgBit
    *:图片
    *@param x
    *:X轴起点坐标
    * @param y
    *:Y轴起点坐标
    * @param w
    * :单一图片的宽度
    * @param h
    *:单一图片的高度
    * @param line
    *:第几列
    * @param row
    * :第几行
    */

   public final  void cuteImage(Canvas g, Paint paint, Bitmap imgBit, int x,

                   int y, int w, int h, int line, int row) {

           g.clipRect(x, y, x + w, h + y);

           g.drawBitmap(imgBit, x - line * w, y - row * h, paint);

           g.restore();

   }

//图片缩放,对当前图片进行缩放处理

   /***

    * 图片的缩放方法
    * * @param bgimage
    *:源图片资源
    * @param newWidth
    *:缩放后宽度
    * @param newHeight
    *:缩放后高度
    * @return
    */

   public Bitmap zoomImage(Bitmap bgimage, int newWidth, int newHeight) {

           // 获取这个图片的宽和高
    if(bgimage == null){
     return null;
    }
       int width = bgimage.getWidth();

       int height = bgimage.getHeight();

       // 创建操作图片用的matrix对象

       Matrix matrix = new Matrix();

       // 计算缩放率,新尺寸除原始尺寸

       float scaleWidth = ((float) newWidth) / width;

       float scaleHeight = ((float) newHeight) / height;

       // 缩放图片动作

       matrix.postScale(scaleWidth, scaleHeight);

       Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, width, height,

                       matrix, true);

       return bitmap;

   }

//4.绘制带有边框的文字,一般在游戏中起文字的美化作用

   /**
    * 绘制带有边框的文字
    * @param strMsg
    * :绘制内容
    * @param g
    *:画布
    * @param paint
    *:画笔
    * @param setx
    *:X轴起始坐标
    * @param sety
    *:Y轴的起始坐标
    * @param fg
    *:前景色
    * @param bg
    * :背景色
    */

   public void drawText(String strMsg, Canvas g, Paint paint, int setx,

                   int sety, int fg, int bg) {

           paint.setColor(bg);

           g.drawText(strMsg, setx + 1, sety, paint);

           g.drawText(strMsg, setx, sety - 1, paint);

           g.drawText(strMsg, setx, sety + 1, paint);

           g.drawText(strMsg, setx - 1, sety, paint);

           paint.setColor(fg);

           g.drawText(strMsg, setx, sety, paint);

           g.restore();

   }
}

原创粉丝点击