在android中,我想通过从中心点添加每个花瓣来绘制花朵。我在 ImageView 上使用了setRotation,但是每个花瓣的中心点都不同。 (我指的是花朵的中心点)有人可以看看我的代码并建议我更正吗?谢谢。
int angle=0;
int ypos=500;
int xpos=500;
RelativeLayout layout = (RelativeLayout)findViewById(R.id.ln1);
for(int i=0;i<10;i++)
{
ImageView image = new ImageView(this);
image.setLayoutParams(new android.view.ViewGroup.LayoutParams(150,400));
image.setX(xpos);
image.setY(ypos);
image.setPadding(-7,-30,-10,0);
image.setPivotX(1.0f);
image.setScaleX(1.5f);
image.setScaleY(1.5f);
image.setImageResource(R.drawable.petal);
image.setRotation(image.getRotation() + angle);
angle=angle+36;
layout.addView(image);
}
我得到的图像是这个
最佳答案
旋转图像时,旋转是使用图像的左上角进行的,而不是旋转图像的中心。
下图可能说明了这一点。黑色正方形代表您的图像。左侧站点显示您现在的情况。右侧显示了您想要的情况。
旋转之前,应从x位置减去一半的宽度,并从y位置加上一半的高度。然后,您应该获得所需的图像。
正如用户Ralf Renz在其comment中指出的那样,您也可以简单地从-36角度开始。这是一个有用的解决方法。
关于java - 如何在Android中为每只花瓣绘制花朵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49795145/