これが機能しない理由がまったくわかりません。一晩中試してみImageView
ました。クリックするとスコアが差し引かれます。私もそれをログに記録しようとしましたが、成功しませんでした..私のアニメーションが何らかの形で干渉しているためでしょうか?
これは私のXML全体です
<TextView
android:id="@+id/timer1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Test" />
<TextView
android:id="@+id/score1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Score:" />
<ImageView
android:id="@+id/imgview1"
android:layout_width="83dp"
android:layout_height="131dp"
android:clickable="true"
android:onClick="PeanutClick"
android:src="@drawable/lil_peanut"/>
これは私のソースコードです
public class GameView extends Activity implements OnClickListener {
MediaPlayer backgroundMusic;
TextView mTextField;
TextView mScoreField;
Point size = new Point();
Display display;
ImageView image;
int score = 0;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameviewlayout);
int l;
mTextField = (TextView) findViewById(R.id.timer1);
mScoreField = (TextView) findViewById(R.id.score1);
image = (ImageView) findViewById(R.id.imgview1);
image.setOnClickListener(this);
TranslateAnimation moveLefttoRight = new TranslateAnimation(0, 200, 0,
0);
moveLefttoRight.setDuration(5000);
moveLefttoRight.setFillAfter(true);
moveLefttoRight.setRepeatCount(-1);
moveLefttoRight.setRepeatMode(Animation.REVERSE);
image.startAnimation(moveLefttoRight);
new CountDownTimer(45000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("Seconds Remaining: " + millisUntilFinished
/ 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
display = getWindowManager().getDefaultDisplay();
display.getSize(size);
int width = size.x;
int height = size.y;
backgroundMusic = MediaPlayer
.create(GameView.this, R.raw.gallery_music);
backgroundMusic.start();
}
public void onClick(View v) {
if (v.getId() == R.id.imgview1)
Log.i("MB2", "Touchy touchy!");
PeanutClick();
}
public void PeanutClick() {
score = score - 100;
mScoreField.setText("Score: " + score);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
backgroundMusic.release();
}
編集; 投稿されたソリューションは機能しません。XML 全体と現在のコードでコードを更新しました。