我在开发Android应用程序时遇到了一些麻烦。我希望你能帮助我;)
这是我想要实现的目标: 我想编写一个手表,因此我创建了一个带有时钟的位图。然后我使用Imageview显示此位图并为此Imageview设置动画以旋转它。
我的问题是: 现在我想给ImageView提供不同的形状(例如六边形的形状)。我尝试了各种自定义ImageView和自定义布局,使用代码画布和绘画编辑了我的位图,但是所有这些代码都有一个主要问题: 我只能塑造Imageview,因此“形状”和位图一样旋转(因为ImageView的旋转动画)。但我想要像在ImageView上放置一个alpha蒙版,以便带有clockhand的Bitmap可以旋转,但形状保持不变。
经过大量的互联网研究和数小时的测试代码后,我想到了要求社区。 p>
我期待任何建设性的建议。
由于
答案 0 :(得分:0)
有一种可能性,但我不确定性能。而不是旋转ImageView本身,使用转换矩阵来旋转位图。
Matrix matrix = new Matrix();
matrix.postRotate(deg);
mImageView.setScaleType(ImageView.ScaleType.MATRIX);
mImageView.setImageMatrix(matrix);
这应该只旋转内容本身,而不是视图。
(请注意,如果您已使用scaleType
,则需要稍微更改此矩阵,例如在setRectToRect()
之前使用postRotate()
。