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

河洛浴春风

河洛浴春风

2016-02-19 09:34

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

1.放大缩小图片

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

代码如下:

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

代码如下:

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

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子

Android屏蔽后退键的小例子

编程语言 网络编程
Android屏蔽后退键的小例子

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

short与int转换的小例子

编程语言 网络编程
short与int转换的小例子

android,不显示标题的方法小例子

编程语言 网络编程
android,不显示标题的方法小例子

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Android通过手势实现的缩放处理实例代码

编程语言 网络编程
Android通过手势实现的缩放处理实例代码

图片按比例缩放函数

Web开发
图片按比例缩放函数

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

java实现整数转化为中文大写金额的方法

java实现整数转化为中文大写金额的方法

User Scripts: Video Download by User Scripts

User Scripts: Video Download by User Scripts
下拉加载更多内容 ↓