Hallo erst mal vom Neuen ans gesamte Forum!
Seit einigen Tagen bin ich nun auch unter die Java Programmierer gegangen und habe mir dazu erst mal leichte Lektüre geholt: Android Apps Entwickeln für Kids
Klingt lustig aber ist selbst für erwachsene Einsteiger gut!
OK, zur Frage:
MainAktivity.java, hier habe ich folgenden eintrag geschrieben:
package com.example.tazgosh.movie1;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.ToggleButton;
public class MainActivity extends AppCompatActivity {
private boolean Gehen = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView Bild1 = (ImageView) findViewById(R.id.imageView);
ToggleButton Schalter1 = (ToggleButton) findViewById(R.id.toggleButton);
ToggleButton Schalter2 = (ToggleButton) findViewById(R.id.toggleButton2);
ToggleButton Schalter3 = (ToggleButton) findViewById(R.id.toggleButton3);
// Bilddatei laden, aber noch unsichtbar lassen
Bild1.setImageResource(R.drawable.figur01);
Bild1.setVisibility(View.INVISIBLE);
// Button zum Zeigen-Verbergen
Schalter1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
boolean An = ((ToggleButton) view).isChecked();
// Bild zeigen oder verbergen
if (An)
Bild1.setVisibility(View.VISIBLE);
else
Bild1.setVisibility(View.INVISIBLE);
}
});
// Button zum Bewegen-Anhalten
Schalter2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// passende Animations-Ressource holen
if (Gehen)
Bild1.setImageResource(R.drawable.animation);
else
Bild1.setImageResource(R.drawable.animation2);
// Bilder zuordnen
AnimationDrawable Animation1 =
(AnimationDrawable) Bild1.getDrawable();
// Animation starten oder stoppen
if (Animation1.isRunning())
Animation1.stop();
else
Animation1.start();
}
});
// Button zum Gehen-Drehen
Schalter3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Gehen = !Gehen;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Alles anzeigen
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item
android:drawable="@drawable/figur01"
android:duration="300" />
<item
android:drawable="@drawable/figur05"
android:duration="300" />
</animation-list>
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item
android:drawable="@drawable/figur01"
android:duration="300" />
<item
android:drawable="@drawable/figur02"
android:duration="300" />
<item
android:drawable="@drawable/figur03"
android:duration="300" />
<item
android:drawable="@drawable/figur04"
android:duration="300" />
</animation-list>
Alles anzeigen
Die funktion ist recht einfach. Mit dem ersten Schalter soll eine Bild Datei, eine kleine Figur, eingeblendet und ausgeblendet werden. Mit Schalter 2 sollen abwechselnd zwei Bilder angezeigt werden, so dass ein Laufeffekt der Figur entsteht. Schalter 3, damit soll die Grafik, also die Figur sich drehen.
Nun mein Problem ist folgendes. Ich kann Schalter 2 zwar aktivieren, damit die Figur sich bewegt, jedoch lässt sich die Bewegung nicht mehr deaktivieren. Die Animation läuft dauerhaft, klicke ich auf den Schalter 2, dass die Bewegung stoppen soll, hällt die Figur ca. 1/2 Sekunde an, aber die Animation wird fortgesetzt. Der Fehler muss also nach meiner Einschätzung her in der MainAktivity.java sein, Zeilen 39 - 42. Schalter 3 macht ebenfalls Probleme und funktioniert nurt wie er lustig ist.
Finde einfach keinen Fehler, ist 1:1 wie im Heft und habe auch schon das beiliegende Projekt zum Buch getestet, dort ist das selbe Problem, die Grafik stoppt nicht mehr.
Ich hoffe ihr könnt einem Neuling bei seinem "großen" Problem weiter helfen.