• Bitmap 创建、转换、圆角、设置透明度


    指定一个色值生成bitmap

       public Bitmap getBackGroundBitmap(int color) {

                         Paint p = new Paint();

                         p.setColor(Color.RED);

                         Bitmap bitmap = Bitmap.createBitmap(190, 110, Bitmap.Config.ARGB_8888);

                         Canvas canvas = new Canvas(bitmap);

                         canvas.drawColor(android.R.color.transparent);

                         canvas.drawColor(color);

                         return bitmap;

           }

    设置bitmap的透明度

       public static Bitmap getAlplaBitmap(Bitmap sourceImg, int number) {

              int[] argb = new int[sourceImg.getWidth() * sourceImg.getHeight()];

              sourceImg.getPixels(argb, 0, sourceImg.getWidth(), 0, 0, sourceImg.getWidth(), sourceImg.getHeight());

              number = number * 255 / 100;

              for (int i = 0; i < argb.length; i++) {

                    argb[i] = (number << 24) | (argb[i] & 0x00FFFFFF);

              }

               sourceImg = Bitmap.createBitmap(argb, sourceImg.getWidth(), sourceImg.getHeight(), Config.ARGB_8888);

            return sourceImg;

       }

    drawable转换成bitmap

       public static Bitmap drawableToBitmap(Drawable drawable) {

              Bitmap bitmap = Bitmap.createBitmap(

                      drawable.getIntrinsicWidth(),

                      drawable.getIntrinsicHeight(),

                      drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565);

              Canvas canvas = new Canvas(bitmap);

              drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

              drawable.draw(canvas);

              return bitmap;

       }

    bitmap圆角  

       public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {

               Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),

                   bitmap.getHeight(), Config.ARGB_8888);

               Canvas canvas = new Canvas(output);

               final int color = Color.RED

               final Paint paint = new Paint();

               final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

               final RectF rectF = new RectF(rect);

               final float roundPx = 6;

               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;

       }

     

  • 相关阅读:
    drf序列化组件
    drf入门规范
    vue发送ajax请求与跨域问题
    Vue对象提供的属性功能
    vue.js库的下载与使用
    admin后台管理与media配置
    Auth认证模块
    学习总结3月11日
    学习总结3月10日
    基于 Spark 的物流企业数据仓库 的设计与实现
  • 原文地址:https://www.cnblogs.com/liyan-blogs/p/5535071.html
Copyright © 2020-2023  润新知