广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Android 图片特效处理的方法实例

    2018-04-06 10:41:28 次阅读 稿源:互联网
    广告

    1. 图片放缩

    代码如下:

    // zoom 放缩 
    public static Bitmap zoomBitmap(Bitmap bitmap, int w, int h) { 
        int width = bitmap.getWidth(); 
        int height = bitmap.getHeight(); 
        Matrix matrix = new Matrix(); 

        float scaleWidth = w / (float) width; 
        float scaleHeight = h / (float) height; 
        matrix.postScale(scaleWidth, scaleHeight); 

        Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, 0, width, height, 
                matrix, true); 
        return bitmap2; 


    2. 获得圆角图片

    代码如下:

    // Round Corner Bitmap 获得圆角图片 
    public static Bitmap getRoundCornerBitmap(Bitmap bitmap, float roundPX /*圆角的半径*/) { 
        int width = bitmap.getWidth(); 
        int height = bitmap.getHeight(); 

        Bitmap bitmap2 = Bitmap.createBitmap(width, height, Config.ARGB_8888); 
        Canvas canvas = new Canvas(bitmap2); 

        final int color = 0xff424242; 
        final Paint paint = new Paint(); 
        final Rect rect = new Rect(0, 0, width, height); 
        final RectF rectF = new RectF(rect); 

        paint.setColor(color); 
        paint.setAntiAlias(true); 
        canvas.drawARGB(0, 0, 0, 0); 
        canvas.drawRoundRect(rectF, roundPX, roundPX, paint); 

        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); 
        canvas.drawBitmap(bitmap, rect, rect, paint); 

        return bitmap2; 


    3. 获得带倒影的图片

    代码如下:

    // Reflect Bitmap 获得带倒影的图片 
    public static Bitmap createReflectedBitmap(Bitmap bitmap) { 
        //倒影和图片本身的间距 
        final int reflectedGap = 4; 
        int width = bitmap.getWidth(); 
        int height = bitmap.getHeight(); 

        Matrix matrix = new Matrix(); 
        matrix.preScale(1, -1); 

        Bitmap reflectedImage = Bitmap.createBitmap(bitmap, 0, height / 2, 
                width, height / 2, matrix, false); 
        Bitmap reflectedBitmap = Bitmap.createBitmap(width, 
                (height + height / 2), Config.ARGB_8888); 

        Canvas canvas = new Canvas(reflectedBitmap); 
        canvas.drawBitmap(bitmap, 0, 0, null); 
        Paint defaultPaint = new Paint(); 
        canvas.drawRect(0, height, width, height + reflectedGap, defaultPaint); 
        canvas.drawBitmap(reflectedImage, 0, height + reflectedGap, null); 

        Paint paint = new Paint(); 
        LinearGradient shader = new LinearGradient(0, bitmap.getHeight(), 0, 
                reflectedBitmap.getHeight() + reflectedGap, 0x70ffffff, 
                0x00ffffff, TileMode.CLAMP); 
        paint.setShader(shader); 
        paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); 
        canvas.drawRect(0, height, width, reflectedBitmap.getHeight() 
                + reflectedGap, paint); 

        return reflectedBitmap; 

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告