jeudi 21 mai 2015

Android ImageView zeichnen

Ich lerne gerade Androidprogrammierung mit dem Buch "Android-Apps entwickeln". Mit Java habe ich schon etwas Erfahhrung.
Als ich den Programmcode, den ich eigentlich nur abgeschrieben hab, ausführen wollte, stürzte das Programm dauernd ab.
Dasselbe passiert auch bei folgendem Beispielprogramm:
Java Code:

  1.  
  2. ...
  3. public class MainActivity extends Activity
  4. {
  5.  
  6. private ImageView iv;
  7. private FrameLayout bereich;
  8. private float massstab;
  9. private int breite, hoehe;
  10. private Random zufallsgenerator;
  11.  
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. zufallsgenerator = new Random();
  17. bereich = (FrameLayout) findViewById(R.id.bereich);
  18. massstab = getResources().getDisplayMetrics().density;
  19. breite = bereich.getWidth();
  20. hoehe = bereich.getHeight();
  21. eineMueckeZeichnen();
  22.  
  23. }
  24.  
  25. public void eineMueckeZeichnen()
  26. {
  27. int breite_muecke = (int) Math.round(massstab*50);
  28. int hoehe_muecke = (int) Math.round(massstab*42);
  29. int links = zufallsgenerator.nextInt( breite-breite_muecke);
  30. int oben = zufallsgenerator.nextInt( hoehe-hoehe_muecke );
  31. iv = new ImageView(this);
  32. iv.setImageResource(R.drawable.icon);
  33. FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(breite_muecke, hoehe_muecke);
  34. params.leftMargin = links;
  35. params.topMargin = oben;
  36. params.gravity = Gravity.TOP + Gravity.START;
  37. iv.setLayoutParams(params);
  38. bereich.addView((ImageView)iv);
  39. }
  40. }


Code:

<FrameLayout xmlns:android="http://ift.tt/GYQbrm;
    xmlns:tools="http://ift.tt/10zyHil;
    android:id="@+id/bereich"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.test.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</FrameLayout>

Das Programm stürzt aber nur ab, wenn die Methode eineMückeZeichnen() aufgerufen wird.
Kann mir jemand sagen, wie ich alternativ einen ImageView zu einem Layout hinzufügen kann? Ich will den ImageView nicht über xml hinzufügen, da die Anzahl der Elemente sowie ihre Position variabel sein soll.

Noch ein paar Infos: Ich benutze Eclipse und habe das Programm sowohl auf einem Emulator als auch auf einem echten Gerät getestet.

Vielen Dank schonmal :)

Edit: folgende Fehler werden angezeigt
Klicken Sie auf die Grafik für eine größere Ansicht  Name: fehlermeldung.JPG  Hits: 0  Größe: 92,7 KB  ID: 7791
Miniaturansichten angehängter Grafiken
Klicken Sie auf die Grafik für eine größere Ansicht  Name: fehlermeldung.JPG  Hits: -  Größe: 92,7 KB  ID: 7791  


Android ImageView zeichnen

0 commentaires:

Enregistrer un commentaire