在android中拖放图像

在android中拖放图像,第1张

概述我正在开发一个单词争夺游戏,允许用户将图像移动到图像..如果图像不匹配,那么它应该回到它拖动它的原始位置.我已经写了一个示例代码来移动它图像,但这里的问题是,如果我移动一个图像,相邻的图像也开始移动..这是示例代码. /** Touchmoveimage.java*/ package com.examples.Touchmoveimage; import android.app 我正在开发一个单词争夺游戏,允许用户将图像移动到图像..如果图像不匹配,那么它应该回到它拖动它的原始位置.我已经写了一个示例代码来移动它图像,但这里的问题是,如果我移动一个图像,相邻的图像也开始移动..这是示例代码.
/** 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中拖放图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1138245.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存