从drawable下面的图片 创建一个Bitmap

来源:互联网 发布:java实现二叉树的创建 编辑:程序博客网 时间:2024/05/16 07:13

Bitmap drawableToBitmap(Context context) {


                Drawable drawable;

 

                //从原始bitmap创建一个bitmap

                Bitmap bitmap = Bitmap
                                .createBitmap(
                                                drawable.getIntrinsicWidth(),
                                                drawable.getIntrinsicHeight(),
                                                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
                                                                : Bitmap.Config.RGB_565);

                //创建一个带有已创建bitmap的画布
                Canvas canvas = new Canvas(bitmap);

                 //从资源中取出一副图片

                drawable =  context.getResources().getDrawable(imageType[i]);
                //canvas.setBitmap(bitmap);

                //设置drawable图片的边缘,以改变图片的大小
                drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

                //将图片画在bitmap的画布上

                drawable.draw(canvas);
                return bitmap;
        }

 

我的理解是,先根据原有bitmap新建一个适当大小的 bitmap,然后新建一个canvas画布,并且用已建的bitmap初始化画布,然后设置资源图片的大小(其大小最好不要超过你所建的bitmap的大小,否则会显示不完全),然后将资源图片draw在建有bitmap的画布上,that is over。

 

而((BitmapDrawable)res.getDrawable(R.drawable.youricon)).getBitmap();这样得到的位图一般是原始大小的图片资源位图,没有进行缩放。

在画布上画bitmap调用函数canvas.drawBitmap(bitmap, matrix, mPaint);即可

原创粉丝点击