Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子

 更新时间:2013年05月31日 10:11:13   作者:  
Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子,需要的朋友可以参考一下

1.放大缩小图片

复制代码 代码如下:

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


2.获得圆角图片的方法

复制代码 代码如下:

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


3.获得带倒影的图片方法

复制代码 代码如下:

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

4.将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;
}

相关文章

  • Android自定义布局实现仿qq侧滑部分代码

    Android自定义布局实现仿qq侧滑部分代码

    这篇文章主要为大家详细介绍了自定义布局实现仿qq侧滑Android部分代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android轻松实现多语言的方法示例

    Android轻松实现多语言的方法示例

    本篇文章主要介绍了Android轻松实现多语言的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • android基于ListView和CheckBox实现多选和全选记录的功能

    android基于ListView和CheckBox实现多选和全选记录的功能

    本篇文章主要介绍了android基于ListView和CheckBox实现多选和全选记录的功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • Android广播机制原理与开发

    Android广播机制原理与开发

    Android广播机制就是在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理
    2023-02-02
  • 让Android中RadioGroup不显示在输入法上面的办法

    让Android中RadioGroup不显示在输入法上面的办法

    在Android开发中,发现一个问题,打开输入法导致下面的radioGroup的位置发生了变化,被顶到了输入法的上面,那么该如何解决呢?下面来看看。
    2016-08-08
  • Android多级树形列表控件

    Android多级树形列表控件

    这篇文章主要为大家详细介绍了Android多级树形列表控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android实现调用摄像头拍照并存储照片

    Android实现调用摄像头拍照并存储照片

    本文主要介绍了如何利用Android调用摄像头拍照,并显示拍照后的图片到ImageView中,文中的示例代码讲解详细,感兴趣的可以动手试一试
    2022-01-01
  • RadioButton实现选择后可取消选择

    RadioButton实现选择后可取消选择

    这篇文章主要为大家详细介绍了RadioButton实现选择后可取消选择,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • popupwindow焦点问题解决方案

    popupwindow焦点问题解决方案

    在android 开发过程中,总会遇到一些问题,比如popupwindow焦点问题等等,我们该如何解决呢?需要的朋友可以了解下
    2012-11-11
  • Android实现定制桌面的方法

    Android实现定制桌面的方法

    这篇文章主要介绍了Android实现定制桌面的方法,较为详细的分析了Android定制桌面的相关注意事项及具体技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10

最新评论