如何Drawable在绘制资源时从资源中加载?例如,我想绘制一个箭头,并且能够在绘制时将其旋转到面向不同的方向?
Zel*_*mir 20
您需要使用Bitmap和Canvas类函数来准备drawable:
Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2);
Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmResult);
tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
mImageView.setImageBitmap(bmResult);
Run Code Online (Sandbox Code Playgroud)
在此代码中,样本在图像中心上旋转90度.
jJ'*_*jJ' 10
本质上它可以归结为:做一个(n反)画布转换而不是转换drawable
private BitmapDrawable drawable; // or Drawable
protected void onDraw(Canvas canvas) { // inherited from View
//...
canvas.save();
canvas.rotate(degrees, pivotX, pivotY);
drawable.draw(canvas);
canvas.restore();
//...
}
Run Code Online (Sandbox Code Playgroud)
如果你有BitmapDrawable,可能需要通过设置抗锯齿来提高输出质量
drawable.setAntialias(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28767 次 |
| 最近记录: |