求助 ,关于自定义View动态改变位置 自定义View 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般情况下 如果你的父类布局是 AbsoluteLayout v.layout 方法会调用 onLayout()方法 AbsoluteLayout 有实现这个方法。其他情况 需要自己手动绘制。也就是 你需要自己继承个父类布局, //参考下面做法 @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); if (v != null && v.visible()) { drawChild(canvas, v, getDrawingTime()); } }这样 才会在界面上绘制出 你想要的结果(未实测, 仅供参考。) 现在我是这样的情况,布局是releativelayout r1 , r1 里又一个relativelayout r2。代码里我自定一个view Myview, r2.addview(Myview) .给r1 设置触摸事件, 触摸到的地方myview.layout(); 希望这样可以使Myview 移动,可是没有效果。 r1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //do layout here //this is important to return true, for you need to get MOVE MotionEvent return true; } });原因 你要去理解下 点击事件的传递流程。所有该类的方法 返回值 都很重要。 //简单模拟个实现, 你参考下。public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); RelativeLayout r1=new RelativeLayout(this); final RelativeLayout r2=new RelativeLayout(this); r1.addView(r2,new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); final TextView button=new TextView(this); button.setText("我是谁"); r2.addView(button); r1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // if(event.getAction()==MotionEvent.ACTION_MOVE) { button.layout((int) event.getX(), (int) event.getY(), (int) (button.getWidth() + event.getX()), (int) (button.getHeight() + event.getY())); // } return false; } }); setContentView(r1); }} 通讯录相关应用,急求手机号归属地之间的对应规律. 求教android ril层软件架构 请问如何获取listview中选中的checkbox? android 应用程序屏蔽音量调节声音 android des加密与c#des加密结果不一样,求高手! 怎样改变android界面的外观? android简单问题 求一个耳机上按钮事件的例子 请教下service到底有什么用 安卓小白求教! Fragment必须要有Activity来进行调用吗? 新手学android 用eclipse创建android项目报错
//参考下面做法
@Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas); if (v != null && v.visible()) {
drawChild(canvas, v, getDrawingTime());
} }这样 才会在界面上绘制出 你想要的结果
(未实测, 仅供参考。)
布局是releativelayout r1 , r1 里又一个relativelayout r2。
代码里我自定一个view Myview, r2.addview(Myview) .
给r1 设置触摸事件, 触摸到的地方myview.layout();
希望这样可以使Myview 移动,可是没有效果。
@Override
public boolean onTouch(View v, MotionEvent event) {
//do layout here
//this is important to return true, for you need to get MOVE MotionEvent
return true;
}
});原因 你要去理解下 点击事件的传递流程。
所有该类的方法 返回值 都很重要。
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); RelativeLayout r1=new RelativeLayout(this); final RelativeLayout r2=new RelativeLayout(this);
r1.addView(r2,new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); final TextView button=new TextView(this); button.setText("我是谁");
r2.addView(button); r1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// if(event.getAction()==MotionEvent.ACTION_MOVE) {
button.layout((int) event.getX(), (int) event.getY(), (int) (button.getWidth() + event.getX()), (int) (button.getHeight() + event.getY()));
// }
return false;
}
});
setContentView(r1);
}
}