Wie erstelle ich ein FrameLayout?

  • Antworten:6
  • Bentwortet
Yannick M
  • Forum-Beiträge: 46

03.02.2014, 06:35:31 via Website

Da ich mit Bitmaps und Canvas arbeite, habe ich die ContentView folgendermassen aufgestellt:

1public void onCreate(Bundle savedInstanceState) {
2 super.onCreate(savedInstanceState);
3 v = new OurView(this);
4 v.setOnTouchListener(this);
5 setContentView(v);

Nun will ich aber zwei Buttons über diesem Layout erstellten. Ich habe gelesen, dass man ein FrameLayout benutzen sollte, wo man mit verschieden Layern arbeiten kann. Ich habe gegoolet wie man ein FrameLayout erstellt; habe aber nur Einträge gefunden, wie man es in einer XML Datei macht.

Wie macht man es in der Java Datei oder kombiniert mit der XML Datei?

Vielen Dank

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 06:57:19 via App

Normalerweise Designed man android immer in der Xml.
Per Code nur wenn etwas zu Laufzeit geändert werden muss.

LG Pascal //It's not a bug, it's a feature. :) ;)

Yannick M

Antworten
Yannick M
  • Forum-Beiträge: 46

03.02.2014, 07:17:29 via Website

Aber wenn ich alles in der XML designe, wie kann ich dann die Canvas Bitmap anzeigen lassen? Ich habe ein FrameLayout in der XML Datei gemacht und jetzt zeigt es mir meine Bitmap nicht mehr an.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

03.02.2014, 07:55:16 via App

Bilder anzeigen etc. muss noch über den Code laufen...

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
impjor
  • Forum-Beiträge: 1.793

03.02.2014, 12:12:25 via App

Füge in dem FrameLayout doch deine eigene Klasse ein:
<Framelayout ...>
<dein.package.deine.CanvasKlasse />
</FrameLayout>

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Yannick M

Antworten
Yannick M
  • Forum-Beiträge: 46

04.02.2014, 07:25:22 via Website

Ich habe mal versucht die Canvasgame Klasse in die XML einzufügen, leider schweitere ich daran. Es sagt mir es sei keine View. Was muss ich ändren, sodass es eine View ist und funktioniert.

Vielen Dank für deine Hilfe

ingame.xml

1<?xml version="1.0" encoding="UTF-8"?>
2<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent"
5 android:layout_height="match_parent"
6 android:orientation="horizontal" >
7
8 <com.yannick.crazy.dolph.Canvasgame
9 xmlns:CrazyDolph="http://schemas.android.com/apk/lib/com.yannick.crazy.dolph.Canvasgame"
10 xmlns:app="http://schemas.android.com/apk/lib/com.yannick.crazy.dolph.Canvasgame"
11 android:id="@+id/OurView"
12 app:newAttr="value"
13 />
14</FrameLayout>


Teil von der Canvasgame.java Datei

1@Override
2 public void onCreate(Bundle savedInstanceState) {
3 super.onCreate(savedInstanceState);
4
5 //set up View
6 v = new OurView(this);
7 v.setOnTouchListener(this);
8 dolph = BitmapFactory.decodeResource(getResources(), R.drawable.dolphin);
9 setContentView(v);
10
11 }
12
13 public class OurView extends SurfaceView implements Runnable {

Fehlermeldung:

02-03 22:12:37.010: E/AndroidRuntime(21208): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yannick.crazy.dolph/com.yannick.crazy.dolph.Ingame}: android.view.InflateException: Binary XML file line #8: Class is not a View com.yannick.crazy.dolph.Canvasgame

Antworten
impjor
  • Forum-Beiträge: 1.793

04.02.2014, 13:44:45 via App

Die Klasse CanvasGame ist anscheinend keine View, sondern eine Activity, oder? Du musst natürlich die View nennen (OurView)

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten