我已經寫了一個應用程序,基本上在屏幕上顯示一個彈跳球。我想添加一個SeekBar,當我改變它的值時增加球的速度。我在我的Ball類中創建函數來獲取和設置x和y速度。Android:使用SeekBar改變球的速度
package perseus.gfx.test;
import everything;
public class GfxActivity extends Activity implements OnSeekBarChangeListener {
ViewGroup.LayoutParams vg = new ViewGroup.LayoutParams(-1, -1);
double velx, vely;
double x, y;
double finx, finy;
SeekBar velo;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Ball ball = new Ball(this);
setContentView(R.layout.main);
addContentView(ball, vg);
tv = (TextView)findViewById(R.id.test);
velo = (SeekBar)findViewById(R.id.vel);
velo.setOnSeekBarChangeListener(this);
x = ball.getSpeedX();
y = ball.getSpeedY();
ball.setSpeedX(finx);
ball.setSpeedY(finy);
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
finx = x + arg1;
finy = y +arg1;
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
//nothing
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
//nothing
}
}
的問題是,(我認爲),只FIN1和FIN2的局部值受到影響,所以球根本不會移動。 如何將fin1和fin2的值傳遞給onCreate()?
再次感謝設定球的速度:)我意識到我的錯誤,我已經在onCreate中實例化了球。我把球移到外面,現在工作正常。 –