实现效果,Buttton在屏幕范围内到处拖动,但不会拖出屏幕,代码如下:
public class DraftTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetrics dm=getResources().getDisplayMetrics();
final int screenWidth=dm.widthPixels;
final int screenHeight=dm.heightPixels-50;
final Button b=(Button)findViewById(R.id.btn);
b.setOnTouchListener(new OnTouchListener(){
int lastX,lastY;
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int ea=event.getAction();
Log.i("TAG", "Touch:"+ea);
switch(ea){
case MotionEvent.ACTION_DOWN:
lastX=(int)event.getRawX();//获取触摸事件触摸位置的原始X坐标
lastY=(int)event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
int dx=(int)event.getRawX()-lastX;
int dy=(int)event.getRawY()-lastY;
int l=v.getLeft()+dx;
int b=v.getBottom()+dy;
int r=v.getRight()+dx;
int t=v.getTop()+dy;
//下面判断移动是否超出屏幕
if(l<0){
l=0;
r=l+v.getWidth();
}
if(t<0){
t=0;
b=t+v.getHeight();
}
if(r>screenWidth){
r=screenWidth;
l=r-v.getWidth();
}
if(b>screenHeight){
b=screenHeight;
t=b-v.getHeight();
}
v.layout(l, t, r, b);
lastX=(int)event.getRawX();
lastY=(int)event.getRawY();
Toast.makeText(DraftTest.this,
"当前位置:"+l+","+t+","+r+","+b,
Toast.LENGTH_SHORT).show();
v.postInvalidate();
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}});
}
}
运行效果如下:
- 大小: 16.8 KB
- 大小: 17.2 KB
- 大小: 16.8 KB
分享到:
相关推荐
本项目"安卓Android源码——拖动Button显示效果.zip"聚焦于如何通过编程技术让Button控件在用户的手势操作下产生独特的视觉反馈。在深入探讨这个主题之前,我们需要了解Android开发的基本知识,包括Activity、布局...
在Android开发中,实现一个可拖动的Button是一项有趣且实用的功能,这通常涉及到自定义View的技巧。本文将深入探讨如何在Android中创建这样一个功能,以及涉及的相关知识点。 首先,我们要理解Android的触摸事件...
在安卓(Android)开发...总结,这个项目展示了如何在Android中通过自定义View和手势检测实现拖动Button的功能,并通过动画和布局更新提供视觉反馈。理解并实践这些技术,将有助于提升Android应用的交互性和用户体验。
在Android开发中,实现按钮(Button)的拖动显示效果是一项常见的交互设计需求。这个实例主要探讨如何在Android应用中创建一个可以被用户拖动的Button,并在拖动过程中展示特定的效果。首先,我们需要理解Android的...
Android 拖动 Button 显示效果,在Android测试机上是按住鼠标拖动按钮,和其它的拖动操作方法一样,不过在手机上运行的时候,用手触摸屏幕按钮住屏幕移动,就可移动按钮,代码注释英文,来自国外Android网站的源码。
本项目"Android应用源码之拖动Button显示效果"着重于如何在Android应用程序中实现一个可拖动的Button,并在拖动过程中展示出丰富的视觉效果。下面将详细解析这一知识点。 首先,我们需要了解Android中的触摸事件...
这个“Android 可拖动浮动工具条(菜单)Demo”就是一个很好的示例,展示了如何实现这样的功能。下面我们将深入探讨这个Demo中的关键知识点。 1. **Draggable Views**: 在Android中,实现拖放功能主要依赖于`...
通过以上步骤,你可以实现一个可拖动的Button,当用户在屏幕上滑动时,Button会跟随手指移动。这个简单的功能展示了Android应用开发中的自定义视图和事件处理能力,对于学习Android UI编程具有很好的实践意义。记得...
在Android应用开发中,拖动Button显示效果是一个常见的交互设计,尤其在移动开发App的毕业设计项目中,这种功能能够提升用户体验,使用户界面更具吸引力。这个"Android应用源码之拖动 Button 显示效果"的项目,显然...
"Android的可拖动PointView"是一个这样的实例,它允许用户通过触摸屏幕来拖动一个点视图。这个项目可能是一个独立的控件或者用于更复杂的交互设计中,比如地图上的标记、游戏中的角色等。 首先,我们要理解Android...
Android安卓项目源码-拖动 Button 显示效果.zip
总结来说,实现Android拖动按钮效果涉及的关键技术包括:理解Android的触摸事件处理机制、自定义View、重写onDraw()和onTouchEvent()方法、处理布局约束以及利用动画API提供视觉反馈。通过这些技术的结合,我们可以...
本文将深入探讨如何基于Android系统,创建一个可拖动、可缩放且能填充自定义内容的控件,类似于一个可操作的RelativeLayout。我们将从以下几个关键知识点出发进行讲解: 1. **触摸事件处理**: Android中的触摸...
在Android开发中,为了提供与iOS类似的用户体验,有时我们需要实现可拖动的开关按钮。这个题目涉及的关键技术点包括自定义视图(Custom View)和触摸事件处理。下面将详细介绍如何在Android中创建一个可拖动的开关...
"Android实现悬浮可拖拽的Button" Android实现悬浮可拖拽的Button是Android应用程序中一个常见的交互元素,通常用于提供用户快速访问某些功能的入口。下面是相关知识点的总结: 一、Draggable Button的概念 ...
在Android开发中,实现控件的拖动是一项常见的交互设计,它可以增强用户的操作体验,使得应用更加直观易用。在本篇文章中,我们将深入探讨如何在Android中实现控件的拖动功能,以及相关的技术要点。 首先,我们需要...
例子比较简单,但是如果有需要此功能的,这个例子可以提供很多提示这个是拖动以后的效果,一个imageview和一个button控件,提供两份代码下载吧,一份是只有一个Button的,另一份就是像上图,就是多了一个imagview!
在Android开发中,拖动Button显示效果是一种常见的交互设计,它可以增强用户操作的直观性和趣味性。本项目可能包含一个示例应用,演示了如何实现Button的拖动以及与之相关的视觉反馈效果。下面我们将详细探讨这个...