private ImageView img1;
private int screenWidth;
private int screenHeight;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
img1 = (ImageView) findViewById(R.id.imageView1);
DisplayMetrics dm = getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels - 50;
img1.setOnTouchListener(movingEventListener);
img1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
System.out.println(333333);
Toast.makeText(RemoveImageActivity.this, "点击咯", Toast.LENGTH_SHORT).show();
}
});
}
private OnTouchListener movingEventListener = new OnTouchListener() {
int lastX, lastY;
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == event.ACTION_DOWN) {
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
System.out.println(11111);
}
if (event.getAction() == event.ACTION_MOVE) {
System.out.println(222222);
int dx = (int) event.getRawX() - lastX;
int dy = (int) event.getRawY() - lastY;
int left = v.getLeft() + dx;
int top = v.getTop() + dy;
int right = v.getRight() + dx;
int bottom = v.getBottom() + dy;
// 设置不能出界
if (left < 0) {
left = 0;
right = left + v.getWidth();
}
if (right > screenWidth) {
right = screenWidth;
left = right - v.getWidth();
}
if (top < 0) {
top = 0;
bottom = top + v.getHeight();
}
if (bottom > screenHeight) {
bottom = screenHeight;
top = bottom - v.getHeight();
}
v.layout(left, top, right, bottom);
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
}
return true;
}
};
如何返回值為TRUE,那麼,如果按鈕还有点击事件的话,点击事件失效了(监听不到);
如果返回值为FALSE。那么,拖动事件完毕之后,立即就执行了点击事件
分享到:
相关推荐
在Android Activity中实现图片的拖动是一项常见的交互设计任务,主要涉及到对图像视图(ImageView)的操作以及动画的使用。以下是一份详细的步骤说明: 1. **使用ImageView展示图片** 首先,我们需要在XML布局文件...
接着,我们需要在布局文件(如activity_main.xml)中添加百度地图的MapView组件: ```xml android:id="@+id/bmapView" android:layout_width="match_parent" android:layout_height="match_parent" android:...
为了更好地理解如何在Android应用中实现拖动效果,我们可以通过以下代码示例来进行分析: ```java package com.roiding.sample; import android.app.Activity; import android.os.Bundle; import android.util.Log...
`OnSeekCompleteListener`在用户拖动`SeekBar`后完成定位时触发,`OnBufferingUpdateListener`则用于获取缓冲进度,以反映加载状态。 播放控制通常包括播放、暂停、停止和快进/快退功能。这些操作可以通过设置按钮...
在地图应用中,可能有一个XML布局文件用于放置地图视图,并可能包含其他UI元素,如按钮、文本视图等。 **Activity**是Android应用的基本组件,它代表了用户可见的屏幕。在源码中,可能有一个或多个Activity负责展示...
6. **拖动控件Drag and Drop**:项目的特色是拖动控件功能,Android提供了一套拖放API,允许用户直接在屏幕上拖动UI元素。这通常涉及到`OnTouchListener`和`View.OnDragListener`的实现,以及`ClipData`的使用。 7....
如果希望横竖屏切换时不销毁Activity,可以在AndroidManifest.xml中对Activity设置相应的属性。 ```xml <activity android:name=".MyActivity" android:configChanges="orientation|screenSize"> </activity> ``` ...
4. **活动(Activity)管理**:在Android应用中,每个屏幕通常对应一个Activity。在Sudoku游戏中,你可能需要多个Activity来处理游戏的不同阶段,如主菜单、游戏界面、帮助页面等。学习如何在Activity之间进行跳转和...
例如,在一个手机应用中,每一个单独的“屏幕”都由一个Activity来实现。当用户在不同屏幕之间导航时,实际上是通过启动不同的Activity来实现的。 #### 布局管理器 布局管理器是用于组织UI组件的一种容器,它们控制...
XML布局文件在运行时被解析成相应的GUI类,并在Activity的onCreate事件处理函数中通过setContentView方法加载到屏幕上。 在Android开发中,Activity是展示应用程序UI的基本单元。它通过XML文件定义其界面,例如res/...
- **申请添加Activity**:要在`AndroidManifest.xml`中注册一个新的`Activity`,需要在`<application>`标签内添加一个`<activity>`标签,并设置相应的属性(如`android:name`)。 - **申请添加permission**:为了...
- 在`<activity>`标签中添加`<intent-filter>`来指定Action和Category。 6. **启动Activity** - 使用`Intent`对象启动一个新的Activity。 - 调用`startActivity()`方法完成跳转。 7. **启动Activity并返回结果*...
1. **活动(Activity)**:在Android应用中,每个用户可见的屏幕就是一个活动。拼图游戏可能由一个或多个活动构成,每个活动负责显示游戏的不同阶段,如游戏主菜单、游戏进行中、游戏结束等。 2. **布局(Layout)*...
此外,还提到了SlidingDrawer组件,它允许内容在屏幕外缓存,用户可以通过拖动把手来显示或隐藏内容。SlidingDrawer的内容可以是任何类型的视图,如GridView。至于Input Method Framework (IMF),它处理软硬件键盘的...
- **Activity与Fragment**:在Android应用中,Activity是用户界面的基本单元,而Fragment则可以用来构建模块化的界面,便于复用和适应不同屏幕尺寸。复读软件可能包含多个页面,比如主播放界面、设置界面等,这些...
6.5.2 获取屏幕分辨率 6.5.3 剪贴板服务 6.5.4 电话服务 6.5.5 定时提醒服务 6.5.6 音频服务 6.5.7 传感器服务 6.5.8 位置服务 6.6 本章小结 第三篇 Android开发基础详解 第7章 常用控件 7.1 Button(按钮) 7.2 ...
例如,DroidDraw是一款免费的在线工具,允许开发者在可视化界面中拖拽构件,然后生成对应的XML代码。 #### 六、总结 本文从基础入手,介绍了Android UI布局的概念和技术,包括Activity与UI的关系、View和ViewGroup...