我想在Canvas,Android中使用drawBitmap()
将两个位图彼此相邻。
我的onDraw()
功能。
protected void onDraw(Canvas canvas) {
if (currentState == openedState) {
fruit1Bitmap = ApplicationServices.textureManager.bitmap[fruitId[0]];
fruit2Bitmap = ApplicationServices.textureManager.bitmap[fruitId[1]];
fruit3Bitmap = ApplicationServices.textureManager.bitmap[fruitId[2]];
src.set(0, 0, fruit1Bitmap.getWidth(), fruit1Bitmap.getHeight());
dst.set(0,0, this.getWidth()/2, this.getHeight()/2);
src1.set(0, 0, fruit2Bitmap.getWidth(), fruit2Bitmap.getHeight());
dst1.set(fruit1Bitmap.getWidth() , 0, this.getWidth()/2, this.getHeight()/2);
canvas.drawBitmap(fruit1Bitmap, src, dst, null);
canvas.drawBitmap(fruit2Bitmap, src1, dst1, null);
}
}
它在班级public class Dhakkan extends ImageButton
内。
当前结果
我想让它展示两个彼此相邻的水果。那么我如何将它们放在ImageButton
。
答案 0 :(得分:1)
而不是
dst1.set(fruit1Bitmap.getWidth() , 0, this.getWidth()/2, this.getHeight()/2);
应该是这样的:
dst1.set(fruit1Bitmap.getWidth(),
0,
fruit1Bitmap.getWidth() + fruit2Bitmap.getWidth(),
this.getHeight()/2);
注意正确的坐标。这将绘制第一个旁边的第二个水果,如果它太大,可能会裁剪它。如果你想在图像按钮的前半部分中绘制两个水果,则修复dst
的坐标,即第一个水果的目标矩形。您可能还会考虑Kim建议的方法。
答案 1 :(得分:0)
阅读文档怎么样:
drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
使用指定的颜色绘制指定的位图,其顶部/左角位于(x,y),由当前矩阵转换。