0
我正在做一個onTouchListener的實驗。我們的目標是將FrameLayout移到任何我碰到的地方。 代碼的第一個版本給了我一個「viewroot $ calledfromwrongthreadexception」錯誤。 因此在第二個版本中,我嘗試使用runOnUiThread來解決錯誤。但是,這樣做只會給白屏。使用runOnUiThread時的白色屏幕
public class MainActivity extends Activity implements Runnable, OnTouchListener{
private int x,y;
private boolean p_running = false;
private FrameLayout mFrame;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFrame=(FrameLayout) findViewById(R.id.frameLayout1);
mFrame.setOnTouchListener(this);
p_running = true;
runOnUiThread(new Thread(new Runnable(){
@Override
public void run(){
while (p_running){
mFrame.setPadding(x,y,0,0);
}
}
}));
}
@Override
public boolean onTouch(View v, MotionEvent event){
x = (int)event.getX();
y = (int)event.getY();
return true;
}
@Override
public void run() {
// TODO Auto-generated method stub
}
}
謝謝。你的代碼作品。 – Wallyfull