java按钮随机移动_java – 使按钮移动触摸我们触摸的确切位置

我创建了一个应用程序,其中有一个按钮在触摸它时移动.

5SxcF.png

现在对于onTouch,我实现了一个不同的类.有两个类,一个是主要的CircleMActivity.java,另一个是onTouch.

现在应用程序运行正常,但有一个问题.当我点击按钮并移动它时它正在移动,但按钮和屏幕触摸之间有一个间隙.

我想要的是将它移动到我触摸它的位置,而不是稍后移动或者你可以认为我想要在光标位置完全移动它.

我应该如何实现它?

码:

CircleMActivity.java:

public class CircleMActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_circle_m);

Button b=(Button)findViewById(R.id.btn1);

MultiTouch mtb=new MultiTouch(this);

b.setOnTouchListener(mtb);

}

}

MultiTouch.java:

public class MultiTouch implements OnTouchListener{

float mPrevX,mPrevY;

CircleMActivity cm;

public MultiTouch(CircleMActivity circleMActivity) {

// TODO Auto-generated constructor stub

cm=circleMActivity;

}

@Override

public boolean onTouch(View arg0, MotionEvent arg1) {

// TODO Auto-generated method stub

float currentX,currentY;

int action=arg1.getAction();

switch(action){

case MotionEvent.ACTION_DOWN:

mPrevX = arg1.getX();

mPrevY = arg1.getY();

break;

case MotionEvent.ACTION_MOVE:

currentX = arg1.getRawX();

currentY = arg1.getRawY();

MarginLayoutParams marginParams = new MarginLayoutParams( arg0.getLayoutParams());

marginParams.setMargins((int)( currentX - mPrevX), (int)( currentY - mPrevY),0, 0);

LayoutParams layoutParams = new LinearLayout.LayoutParams(marginParams);

arg0.setLayoutParams(layoutParams);

break;

case MotionEvent.ACTION_CANCEL:

break;

case MotionEvent.ACTION_UP:

break;

}

return true;

}

}

activity_circle.xml:

android:layout_height="match_parent"

android:layout_width="match_parent"

xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:background="#000000"

android:weightSum="100">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="4.95"

android:background="#fff"

android:orientation="vertical" >

android:id="@+id/editText1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="X coord"

android:textColor="#ff00ee"

android:inputType="number" >

android:id="@+id/editText2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Y coord"

android:textColor="#ff00ee"

android:inputType="number" />

android:id="@+id/editText3"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="Radius"

android:textColor="#ff00ee"

android:inputType="number" />

android:id="@+id/editText4"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:ems="10"

android:textColor="#ff00ee"

android:hint="Colour"

android:inputType="number" />

android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="4.95"

android:background="@drawable/custom" />

"

那我该怎么做呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL性能优化的最佳经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时&#xf…

jspstudy mysql_使用JspStudy集成环境快速部署jsp项目

标签:1. 安装jdk本人网盘资源:https://yunpan.cn/ckZLNbqxkDYYe (提取码:b5e8)去jdk官网下载最新的jdk: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html2. 配置环境变量:1) 系统变量→新…

IOS7的蛋疼各种收集

------------------ ios7基于viewController隐藏状态条:通过ViewController重载方法返回枚举值的方法来控制状态栏的隐藏和样式。首先,需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES&…

php java c_当PHP、Java、C、C++ 这几种编程语言变成汽车是什么样的场景?

在学习和工作中,人们常常会把各种编程语言拿出来做对比,特别是刚刚开始入门学习IT的同学。实际上,每门语言自己的优缺点有时候也正是语言本身的特性,在学习中,我们更应该关心的是应用场景,哪门语言适合哪个…

C#回顾 - 3.NET的IO:字节流

使用 Stream 类管理字节流 使用 FileStream 类管理文件数据 使用 MemoryStream 类管理内存数据 使用 BufferedSream 类提高流性能 3.1 FileStream MemoryStream Seek 定位,寻址 BufferedStream 3.2 管理应用程序数据 文本、流、字符串和二进制数据 管理文本数据和字…

pdftk的使用介绍

首先像下面的一页pdf,如果想把它分成两页,每一页只是一个ppt页面(为了在kindle里读比较方便), 那么可以首先用A-pdf page cut, 将pdf 切成这样12个部分 然后我们现在要的只是第5和第8部分。 如何实现只要弟5和第8部分呢…

java 多线程 notify_Java多线程8:wait()和notify()/notifyAll()

轮询线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作。想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处理?一个办法就…

价差 量差

这两个概念属于成本控制的范畴 成本控制有广义和狭义之分; 广义:生产经营各个环节和各个方面全过程的限制 狭义:生产阶段产品成本控制 标准成本就是通过一些方法制定的在有效的经营条件下应该实现的成本,根据产品的耗费标准和耗费…

Java数据类型BooleanDemo

转载于:https://www.cnblogs.com/suncoolcat/p/3320306.html

heap python_数据结构-堆(Heap) Python实现

堆(Heap)可以看成近似完全二叉树的数组,树中每个节点对应数组中一个元素。除了最底层之外,该树是完全充满的,最底层是从左到右填充的。堆包括最大堆和最小堆:最大堆的每一个节点(除了根结点)的值不大于其父节点;最小堆…

BZOJ 2597 剪刀石头布(最小费用最大流)(WC2007)

Description 在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之为剪刀石头布情况。有的时候,无聊的人们会津津乐道于统计有多少这…

HDU 1476 Sudoku Killer

Sudoku Killer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 3367 Accepted Submission(s): 1063 Problem Description自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到…

java .net 互通redis_C# servicestack.redis 互通 java jedis

本文是基于jedis的一致性环哈希来修改的,.net选的是servicestack.redis组件来修改无奈两个组件都有各自的一致性环哈希算法,不兼容,那就选一个作为标准,修改另一个咯。本文选择jedis的一致性环哈希作为标准,进而修改.n…

6款帮助 滚动视差jquery插件

在网页设计中,视差滚动(Parallax Scrolling)是当下流行的网页设计技术,通过让多层背景以不同的速度或者不同的方向移动来形成非常有趣的 3D 运动效果。下面是一些运用视差滚动效果的优秀网页案例: 视差(Pa…

EBS 多组织访问设置

如果想让你的职责下为单组织模式,那么你在Profile下只设置MO: Operating Unit的值,MO: Operating Unit提供只访问一个单独的OU。如果你想让你的职责下为多组织模式,你需要设置MO: Security Profile,MO: Security Profile提供多组织…

mysql 大量列 动态变量_aardio动态mysql变量设置

aardio动态mysql变量设置aardio动态mysql变量设置废话不多说,直接开始干活!从上午度娘到现在!终于有点结果!需求是从数据库读取数据,根据条件(变量)直接上代码,如有任何问题,欢迎老铁指正&#…

制作简单的java应用程序_使用exe4j工具制作简单的java应用程序

首先需要下载exe4j工具并进行安装,下面是利用exe4j工具制作应用程序的步骤。1.首先将工程导出为可运行的jar包,选择extract required libralies into generated java,会将引用到的jar包也打到里面。右键java工程--export--java--runnable jar…

MVC的传递数据的方法

1、使用ViewBag 1 #region 0.2 Action方法 ActionResult Index2()2 /// <summary>3 /// Action方法4 /// </summary>5 /// <returns></returns>6 public ActionResult Index2()7 {8 …

java 找不到构造函数_JAVA找不到符号构造函数

JAVA找不到符号构造函数关注:52 答案:2 mip版解决时间 2021-02-05 09:13提问者彼岸独舞2021-02-05 00:06class Rect{private double length;private double width;public Rect(double length,double width){this.widthwidth;this.lengthlength;}public double getLength(){re…

SRF之数据访问

数据访问组件实现实体类和数据表映射、SQL语句配置执行、动态sql语句等功能&#xff0c;ORM方式能实现简单的对象和表的映射&#xff08;配置类似hibernate&#xff09;&#xff0c;但比较单一&#xff08;不支持一对多、多对多的情况&#xff09;&#xff0c;下边不做介绍&…