嗨,我是Android的新手。我的问题是,是否有任何功能来显示图像可绘制到屏幕上。顺便说一下,我可以在我触摸的坐标上移动相同的图像,我只需要将新图像放置在我触摸的坐标上。用户触摸的新图像
这里是我的代码:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void placeImage(float X, float Y) {
ImageView flower = (ImageView) findViewById(R.id.img);
int touchX = (int) X;
int touchY = (int) Y;
flower.layout(touchX, touchY, touchX + 48, touchY + 48);
int viewWidth = flower.getWidth();
int viewHeight = flower.getHeight();
viewWidth = viewWidth/2;
viewHeight = viewHeight/2;
flower.layout(touchX - viewWidth, touchY - viewHeight, touchX + viewWidth, touchY + viewHeight);
}
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
int eventAction = event.getAction();
switch (eventAction) {
case MotionEvent.ACTION_DOWN:
float TouchX = event.getX();
float TouchY = event.getY();
placeImage(TouchX, TouchY);
break;
}
return true;
}
首先通过调用'setBounds'来设置可绘制的尺寸和位置,然后通过调用'draw(Canvas c)'(也是'Drawable'的方法)用正确的画布进行绘制(你可以从'onDraw'方法获得一些任何适当的'View')作为参数传递。 – nekavally
哦,你可以编辑我的代码吗? –
在上面的代码中,您正尝试通过调用'layout'方法来移动ImageView。只有在编写自定义的'ViewGroup'时才是正确的。由于您使用了View子类 - 请查看Android中不同布局的不同视图。例如:http://www.google.com/search?q=Layouts+in+android,如果您尝试将元素完全放置,请尝试使用“FrameLayout”。 – nekavally