Frage

Hier ist der Deal.

i war auf der Suche über diesen Code über eine Image erstreckt:

http://marakana.com/forums/android/examples/98.html

und ich frage mich, wie kann ich die neue Ansicht zu einer vorhandenen XML-Layout-Datei hinzufügen, zusammen mit einigen anderen Ansichten.

bereits tue ich dies in meinem Haupt-linearen Layout:

<FrameLayout android:id="@+id/FrameLayout01" android:layout_width="300dp" android:layout_height="300dp">
        <com.marakana.Rose android:layout_height="wrap_content" android:layout_width="wrap_content"/>

, aber das Problem ist, dass auf diese Weise der OnDraw-Methode nicht aufgerufen wird.

Kann mir jemand eine Lösung dafür vorschlagen? vielleicht einige Beispiele, wo Sie Custom mit XML-Layout kombiniert werden.

tnx.

War es hilfreich?

Lösung 2

Ich glaube, ich es gelöst. Früher habe ich meinen Code in der main.xml Datei und es funktioniert. das, was ich tun musste, war eine neue Klasse Konstruktor außer Kraft zu setzen AttributesSet neben dem Kontext als Parameter akzeptieren und verwenden Sie dann findViewById (CustomViewName) es in der Tätigkeit zu verweisen und die Funktionen in der Custom definiert verwenden.

Andere Tipps

Haben Sie fügen Sie die Definition in res / Werte / attrs.xml

<declare-styleable name="Rose">
</declare-styleable>

Ich bin sicher nicht, wenn es gebraucht wird, wenn Sie kein XML-Attribut hinzufügen ...

Also, es würde helfen, wenn Sie den com.marakana.Rose Code geschrieben. Nur als Beispiel, ist dies die Klassendeklaration einer Komponente meines eigenen:

public class CalendarCell extends ImageButton implements OnTouchListener

die OnDraw:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

und das ist ein Ausschnitt aus meinem xml Layout:

<TableRow>
        <com.view.customcomponents.CalendarCell
            style="@style/NumericImageButton"
            android:id="@+id/calendar_row1_col1"

            android:background="@drawable/calendar_bg_selector" />

Ich tat dies vor einiger Zeit durch ein Tutorial folgen, aber ich weiß nicht mehr, wo. Auch ich könnte etwas fehlen. Google ein wenig und Sie werden nützliche Ressourcen finden.

edit: Ich denke, das sind die Tutorials, die ich gefolgt, obwohl ich schließlich in einigen Arbeiten setzen musste, damit es funktioniert:

Offizielle Dokumente

AndDev.org

Damit die Android Developer Tools mit Ihrer Ansicht nach zu interagieren, auf einem Minimum Sie einen Konstruktor bereitstellen muss, die einen Kontext nimmt und ein AttributeSet Objekt als Parameter. Dieser Konstruktor ermöglicht es die layout editor to create and edit an instance of your view.

class PieChart extends View {
    public PieChart(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}

Und Detail Antwort hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top