privateDrawablezoomDrawable(Drawabledrawable,intw,inth){
int
width=drawable.getIntrinsicWidth();
int
height=drawable.getIntrinsicHeight();
Bitmapoldbmp=drawableToBitmap(drawable);
Matrixmatrix=
new
Matrix();
float
scaleWidth=((
float
)w/width);
float
scaleHeight=((
float
)h/height);
matrix.postScale(scaleWidth,scaleHeight);
Bitmapnewbmp=Bitmap.createBitmap(oldbmp,
0
,
0
,width,height,
matrix,
true
);
return
new
BitmapDrawable(
null
,newbmp);
}
private
BitmapdrawableToBitmap(Drawabledrawable){
int
width=drawable.getIntrinsicWidth();
int
height=drawable.getIntrinsicHeight();
Bitmap.Configconfig=drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
:Bitmap.Config.RGB_565;
Bitmapbitmap=Bitmap.createBitmap(width,height,config);
Canvascanvas=
new
Canvas(bitmap);
drawable.setBounds(
0
,
0
,width,height);
drawable.draw(canvas);
return
bitmap;
}
android图片缩放(指定大小)
最新推荐文章于 2025-11-25 16:45:37 发布
本文深入探讨了一个名为 privateDrawablezoomDrawable 的自定义可缩放绘图控件的实现原理及关键步骤。通过将原始 drawable 转换为 Bitmap 并应用缩放矩阵,实现动态调整图片大小的功能。同时,详细解释了 drawable 转换为 Bitmap 的过程,包括配置选择、创建 Bitmap 及 Canvas 绘制等核心操作。
1万+

被折叠的 条评论
为什么被折叠?



