protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Shader shader = new BitmapShader(bar_bitmap, Shader.TileMode.MIRROR, Shader.TileMode.MIRROR);
recPaint.setShader(shader);
canvas.drawRect(distance, endHeight, distance + viewWidth, startHeight, recPaint);
}我画了一个矩形,想用资源图片去填充该矩形,但是图片过大,在矩形中只显示了一部分,不知道是不是设置的模式的问题,各种模式我也试过了都不能按照矩形的大小自动填充。矩形是我自定义的view的一部分,我尝试过在activity中new了这个view,然后view.setbackgroundResource(),可以使图片自适应view的大小,但是我的目的是填充那个矩形,并不是整个view(我尽量吧问题说清楚,不清楚再补充)
另外,填充矩形绝对会使你的图片失真。因为指定了矩形大小,又要图片填充整个矩形,图片就会缩放和拉伸,这会改变图片宽高比,图片失真会比较严重。
我刚做了一个显示图片缩略图的功能,明天写个博客分享给大家。
问题解决了 Bitmap.createBitmap是从原有图片去截取一定范围的图片像素,canvas.drawBitmap才是真正开始画图片 ,多谢你的意见// 使用图片填充的代码:
Bitmap bar_bitmap = ((BitmapDrawable) this.getResources().getDrawable(
drawableIds[whichColor])).getBitmap();
Rect rect = new Rect((int) distance, (int) endHeight,
(int) (distance + viewWidth), (int) startHeight);
canvas.drawBitmap(bar_bitmap, null, rect, null);