私は基本的に画面上に跳ねるボールを表示するアプリを書いています。私はその値を変更したときボールの速度を増加させる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に戻ってそれらを渡す必要はありません私は間違いを認識し、私はonCreateでボールをインスタンス化しました。私はボールボールを外に動かしました、今はうまくいきます。 –