我的问题是:位图必须是正方形或可以删除彩色图像周围的不可见部分?我在SurfaceView中有一个位图,中间有一只手,我想计算这只手的边界,删除它周围的不可见,因为我有onClick方法的问题。如果不计算每个X和Y,是否可以通过Method或其他方法知道手的边界?提前致谢。Android Studio中的位图边界
-1
A
回答
0
关于你的第一个问题:任何保留一定透明度的位图都必须有一个alpha通道,所以在你的情况下一只手有一个alpha通道,因此你不能只删除那些alpha像素,因为如果你做的透明部分会保持黑色。您将不得不使用ARGB_4444格式或ARGB_8888格式来保留此Alpha通道。就获得位图边界而言,使用Rect或一些边界形状可能是椭圆形,为了准确地知道您的手指是否在触摸它,您不能确切地知道您的触摸是否在此手的范围内,因为此手形图,在某些部分包含不同的宽度和高度,但是您可以使用像素完美的碰撞来测试您的触摸是否完全触摸您的手。这是它是如何工作的:
class drawingView extends View {
Rect rect = new Rect();
Bitmap bitmap = yourHand;
@Override
public void onDraw(Canvas canvas) {
canvas.drawBitmap(bitmap, x, y, null);
rect.set(x, y, bitmap.getWidth(), bitmap.getHeight());
invalidate();
}
public void onClick() {
if(rect.contains(event.getX(), event.getY(), && bitmap.getPixel(event.getX() - rect.left, event.getY() - rect.top) != Color.TRANSPARENT) {
// you know you exactly touched the hand even out of the transparent region
}
}
我开始了你我相信你会明白这里发生了什么。 希望这会有所帮助:)
0
这个想法是使用正确的透明度的PNG文件,这意味着手部分应该具有透明度。
现在对于保持图像的透明度使用BitmapFactory时,请确保您的图片作为ARGB_8888
1
拉到你能做的最好的事情将是搭手的图片和裁剪降到手的大小。
通过这种方式,您将拥有更小的文件,而不必实施某种代码工作。
相关问题
- 1. Android Studio - 无边界图片资产
- 2. Android Studio位图
- 3. WPF - 位图 - 额外的边界?
- 4. CorePlot图中的外边界
- 5. HTML布局定位及图像边界
- 6. Android Studio:位图缩放图
- 7. 图像与SimpleDraweeView边界切割android
- 8. Android地图视图中的边界框是什么意思
- 9. 谷歌地图边界(将位置数据限制为纬度/长边界)
- 10. android studio项目编译在2.2p1奇怪的边界
- 11. Android Studio如何创建一个没有方形边界的图像?
- 12. 拖动边界图像
- 13. Android版Canvas上的定位文本包括精确的边界
- 14. 边界前的图像
- 15. 古怪的图像边界
- 16. 图像边界图像php
- 17. 计算边界图像宽度与边界图像首先
- 18. Android无边界按钮
- 19. 图像边界半径
- 20. 网络图中的边界节点组?
- 21. 检测图像中的边界
- 22. 如何去除核心图上边界的边界
- 23. 查找平面图(几何形状)的边界(边界)
- 24. 标记边界阵列上的定位贴图[小册子]
- 25. Android:拉伸位图到多边形
- 26. 如何在android中设置图片边界
- 27. 删除Matlab绘图边界
- 28. 设置地图边界
- 29. 用例图边界概念
- 30. 图像卷积和边界
Wut。我认为你需要澄清。 – Carcigenicate