怎么实现运行时控件添加,拖拉,定位? 我之前做的是条码,可以手动拖动,也可以用手势缩放,其实就是一个imageview,设置一下就可以实现了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个例子是按钮会跟着手移动,你先按我的调试出来看看效果就知道了。import android.app.Activity;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.RelativeLayout;public class TestHand extends Activity implements View.OnTouchListener { private Button btnTest; private ViewGroup root; private int x; private int y; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test_hand); root=(ViewGroup)findViewById(R.id.root); btnTest=(Button)findViewById(R.id.btnTest); RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(150,50); layoutParams.leftMargin=50; layoutParams.topMargin=50; layoutParams.bottomMargin=50; layoutParams.rightMargin=-250; btnTest.setLayoutParams(layoutParams); btnTest.setOnTouchListener(this); } @Override public boolean onTouch(View v, MotionEvent event) { final int X=(int)event.getRawX(); final int Y=(int)event.getRawY(); switch (event.getAction() & MotionEvent.ACTION_MASK){ case MotionEvent.ACTION_DOWN: RelativeLayout.LayoutParams lParams=(RelativeLayout.LayoutParams)v.getLayoutParams(); this.x=X-lParams.leftMargin; this.y=Y-lParams.topMargin; break; case MotionEvent.ACTION_MOVE: RelativeLayout.LayoutParams layoutParams=(RelativeLayout.LayoutParams)v.getLayoutParams(); layoutParams.leftMargin=X-this.x; layoutParams.topMargin=Y-this.y; layoutParams.rightMargin=-250; layoutParams.bottomMargin=-250; v.setLayoutParams(layoutParams); break; } root.invalidate(); return true; }}XML:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试" android:id="@+id/btnTest" /></RelativeLayout> 学android看哪个老师的视频比较好? 重写MediaController样式。。怎么做。。 Toast的使用 使用安卓长按录音,弹起结束要用到哪些 问keyguardmanager问题,谢谢 Sqlite之Query 求助:android加速度传感器坐标转换 Android中如何做到能够接收到服务器传来的消息? 如何将assets下的文本路径放入File类里? android里面代码执行getInputStream();时总是闪退 大牛请进 大神们帮忙解决一下这个问题 为什么连接不上数据库
import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RelativeLayout;
public class TestHand extends Activity implements View.OnTouchListener {
private Button btnTest;
private ViewGroup root;
private int x;
private int y;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_hand);
root=(ViewGroup)findViewById(R.id.root);
btnTest=(Button)findViewById(R.id.btnTest);
RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(150,50);
layoutParams.leftMargin=50;
layoutParams.topMargin=50;
layoutParams.bottomMargin=50;
layoutParams.rightMargin=-250;
btnTest.setLayoutParams(layoutParams);
btnTest.setOnTouchListener(this);
} @Override
public boolean onTouch(View v, MotionEvent event) {
final int X=(int)event.getRawX();
final int Y=(int)event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams=(RelativeLayout.LayoutParams)v.getLayoutParams();
this.x=X-lParams.leftMargin;
this.y=Y-lParams.topMargin;
break;
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams=(RelativeLayout.LayoutParams)v.getLayoutParams();
layoutParams.leftMargin=X-this.x;
layoutParams.topMargin=Y-this.y;
layoutParams.rightMargin=-250;
layoutParams.bottomMargin=-250;
v.setLayoutParams(layoutParams);
break;
}
root.invalidate();
return true;
}
}XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试"
android:id="@+id/btnTest" /></RelativeLayout>