
/** touchmoveimage.java*/ package com.examples.touchmoveimage; import androID.app.Activity; import androID.content.Intent; import androID.os.Bundle; import androID.vIEw.MotionEvent; import androID.vIEw.VIEw; import androID.vIEw.VIEw.OntouchListener; import androID.Widget.ImageVIEw; import androID.Widget.linearLayout.LayoutParams; public class touchmoveimage extends Activity implements OntouchListener{int windowwIDth;int windowheight; private LayoutParams layoutParams ; private LayoutParams layoutParams1 ; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); windowwIDth = getwindowManager().getDefaultdisplay().getWIDth(); windowheight = getwindowManager().getDefaultdisplay().getHeight(); ImageVIEw ball= (ImageVIEw)findVIEwByID(R.ID.ball); ball.setontouchListener(this); ImageVIEw ball1 = (ImageVIEw)findVIEwByID(R.ID.ball1); ball1.setontouchListener(this); } public boolean ontouch(VIEw v,MotionEvent event) { switch(v.getID()) { case R.ID.ball: ImageVIEw ball= (ImageVIEw)findVIEwByID(R.ID.ball); layoutParams = (LayoutParams) ball.getLayoutParams(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: int x_cord = (int)event.getRawX(); int y_cord = (int)event.getRawY(); if(x_cord>windowwIDth){x_cord=windowwIDth;} if(y_cord>windowheight){y_cord=windowheight;} layoutParams.leftmargin = x_cord -25; layoutParams.topmargin = y_cord - 75; ball.setLayoutParams(layoutParams); break; default : break; } case R.ID.ball1: ImageVIEw ball1= (ImageVIEw)findVIEwByID(R.ID.ball1); layoutParams1 = (LayoutParams) ball1.getLayoutParams(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: int x_cord = (int)event.getRawX(); int y_cord = (int)event.getRawY(); if(x_cord>windowwIDth){x_cord=windowwIDth;} if(y_cord>windowheight){y_cord=windowheight;} layoutParams1.leftmargin = x_cord -25; layoutParams1.topmargin = y_cord - 75; ball1.setLayoutParams(layoutParams1); break; default : break; } } return true;} } <!-- main.xml --> <?xml version="1.0" enCoding="utf-8"?> <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" > <ImageVIEw androID:layout_wIDth="50sp" androID:layout_height="50sp" androID:ID="@+ID/ball" androID:src="@drawable/ball"> </ImageVIEw> <ImageVIEw androID:layout_y="30dip" androID:layout_x="118dip" androID:layout_wIDth="50sp" androID:layout_height="50sp" androID:ID="@+ID/ball1" androID:src="@drawable/ball1"> </ImageVIEw> </linearLayout>
任何人都帮助我.想要解决所有可能的事情……
解决方法 你需要确保事件发生在给定的球中.即使您在图像对象外部触摸,也会声明ontouch事件.因此,您可以做的是检查已阻止的ACTION_DOWN阶段,以确保触摸位于对象的边界内.然后你可以设置一个标志来告诉系统正在移动哪个球.我会让你做编码,但希望这会让你知道该怎么做. 总结以上是内存溢出为你收集整理的在android中拖放图像全部内容,希望文章能够帮你解决在android中拖放图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)