图片可以拖到任意位置
来源:互联网 发布:2016网络购物发展趋势 编辑:程序博客网 时间:2024/05/20 03:41
下面为Activity的代码:
01
public
class
DraftTest
extends
Activity {
02
/** Called when the activity is first created. */
03
@Override
04
public
void
onCreate(Bundle savedInstanceState) {
05
super
.onCreate(savedInstanceState);
06
setContentView(R.layout.sign);
07
DisplayMetrics dm = getResources().getDisplayMetrics();
08
final
int
screenWidth = dm.widthPixels;
09
final
int
screenHeight = dm.heightPixels -
50
;
10
//拖动的按钮
11
final
Button b=(Button)findViewById(R.id.startBtn);
12
13
//添加触摸事件
14
15
b.setOnTouchListener(
new
OnTouchListener(){
16
int
lastX, lastY;
//记录移动的最后的位置
17
public
boolean
onTouch(View v, MotionEvent event) {
18
//获取Action
19
20
int
ea=event.getAction();
21
22
Log.i(
"TAG"
,
"Touch:"
+ea);
23
switch
(ea){
24
case
MotionEvent.ACTION_DOWN:
//按下
25
lastX = (
int
) event.getRawX();
26
lastY = (
int
) event.getRawY();
27
break
;
28
/**
29
* layout(l,t,r,b)
30
* l Left position, relative to parent
31
t Top position, relative to parent
32
r Right position, relative to parent
33
b Bottom position, relative to parent
34
* */
35
case
MotionEvent.ACTION_MOVE:
//移动
36
//移动中动态设置位置
37
int
dx =(
int
)event.getRawX() - lastX;
38
int
dy =(
int
)event.getRawY() - lastY;
39
int
left = v.getLeft() + dx;
40
int
top = v.getTop() + dy;
41
int
right = v.getRight() + dx;
42
int
bottom = v.getBottom() + dy;
43
if
(left <
0
){
44
left =
0
;
45
right = left + v.getWidth();
46
}
47
if
(right > screenWidth){
48
right = screenWidth;
49
left = right - v.getWidth();
50
}
51
if
(top <
0
){
52
top =
0
;
53
bottom = top + v.getHeight();
54
}
55
if
(bottom > screenHeight){
56
bottom = screenHeight;
57
top = bottom - v.getHeight();
58
}
59
v.layout(left, top, right, bottom);
60
Log.i(
""
,
"position:"
+ left +
", "
+ top +
", "
+ right +
", "
+ bottom);
61
//将当前的位置再次设置
62
lastX = (
int
) event.getRawX();
63
lastY = (
int
) event.getRawY();
64
break
;
65
case
MotionEvent.ACTION_UP:
//脱离
66
break
;
67
}
68
return
false
;
69
}});
70
}
71
}
XML配置文件Sign.xml的代码:
01
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
02
<
RelativeLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
03
android:id
=
"@+id/layoutRacingNeedForSpeed"
android:padding
=
"0px"
04
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
05
<
Button
06
android:id
=
"@+id/startBtn"
07
android:text
=
"tuodongdeanniu"
08
android:layout_centerInParent
=
"true"
09
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
/>
10
</
RelativeLayout
>
- 图片可以拖到任意位置
- 图片任意位置裁剪
- 图片任意位置添加水印
- 图片任意位置添加水印
- 图片任意位置添加水印
- 在SharePoint 2010中配置发送到连接可以向任意位置发送文档
- 图片热区,使图片的某个位置可以点击链接到其他页面
- 在图片任意位置上添加文本
- 在Button任意位置加图片效果
- 在控件的任意位置显示图片
- TextView中图片在任意位置显示
- 向图片任意位置添加logo
- 在任意位置点击图片显示
- 在Button任意位置加图片效果
- scrollview显示到任意位置的定位
- ubuntu下pip安装到任意位置
- GridViewRow可以任意位置单击引发事件的方法
- GridViewRow可以任意位置单击引发事件的方法
- 如何修改网站标题
- SubversionEdge安装手册
- VC读写ini文件(第三方开源类)
- 判断android设备内存卡的剩余空间
- dotcloud初步
- 图片可以拖到任意位置
- InnoDB 引擎独立表空间 innodb_file_per_table
- 如何修改网站标题减少被处罚
- Linux Shell 通配符、元字符、转义符,正则表达式使用实例介绍
- 一种实现“通信层”的方案,主要演示超時控制
- php-fpm nginx配置,报502错误问题
- CSDN社区运营午餐会第3期–“大家一起玩TV”
- 当程序崩溃的时候怎么办 part-1
- struts.xml 文件结构