zoukankan      html  css  js  c++  java
  • 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;

       }

     

  • 相关阅读:
    Ceres求解直接法BA实现自动求导
    栈溢出漏洞原理详解与利用
    【机器学习】使用CNN神经网络实现对图片分类识别及模型转换
    【Android】java中调用JS的方法
    5 项大奖,70 项满分!阿里云全方位引领云原生技术升级
    分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
    Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
    阿里产品专家:高情商的技术人,如何做沟通?
    CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
    掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇
  • 原文地址:https://www.cnblogs.com/liyan-blogs/p/5535071.html
Copyright © 2011-2022 走看看