实现效果,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
该DEMO为在android中可拖动的Button
安卓Android源码——拖动 Button 显示效果.zip
Android 拖动 Button 显示效果,在Android测试机上是按住鼠标拖动按钮,和其它的拖动操作方法一样,不过在手机上运行的时候,用手触摸屏幕按钮住屏幕移动,就可移动按钮,代码注释英文,来自国外Android网站的源码。
拖动Button的显示效果,Android按钮拖动显示实例,小编的android编译环境又出问题了,暂时没来得及抓个运行图,不好意思啊,反正是个与按钮有关的Android实例源码,要的就下载吧。
Android应用源码之拖动 Button 显示效果
Android应用源码之拖动 Button 显示效果.zip
例子比较简单,但是如果有需要此功能的,这个例子可以提供很多提示这个是拖动以后的效果,一个imageview和一个button控件,提供两份代码下载吧,一份是只有一个Button的,另一份就是像上图,就是多了一个imagview!
主要为大家详细介绍了Android实现悬浮可拖拽的Button,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android应用源码开发Demo,主要用于毕业设计学习。
Android自动添加Button,并实现位置拖动,位置保存,(本人亲测)友友们我会更新更多的源码和大家分享,希望大家喜欢 .
Android系统悬浮窗的实现,以button按钮为例,实现悬浮窗的展示,以及悬浮窗的拖动效果,对Android 6.0以下、Android 6.0以上,以及Android 8.0以上做了处理,可以适应大部分Android版本
DragLinearLayout是一个LinearLayout, 他可是其子View在其范围内可拖动、可交换位置。默认情况下,子View是不可拖动的,你需要调用DragLinearLayout.setViewDraggable(child, child)方法让其可拖动。项目地址:...
android button在页面任意的拖动,真值得大家学习.
主要介绍了Android自定义可拖拽的悬浮按钮DragFloatingActionButton,需要的朋友可以参考下
拖动 Button 显示效果