Android: Zeichnen auf Leinwand in Scrollview

Ich bin ziemlich neu in der Programmierung für Android. Meine App ist eine Beispiel-App von API-Demos auf der Entwickler-Android-Website. Wenn ich die Parameter in dieser Beispielzeichnung ändere, wird sie größer. Diese Zeichnung muss in der Bildlaufansicht angezeigt werden (sie muss nicht verkleinert werden, um auf den Bildschirm zu passen). Dies ist der Code, den ich verwendet habe:

DrawPoints.java

<code>    public class DrawPoints extends myActivity {


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.routes); 

    }

    public static class SampleView extends View {
        private Paint   mPaint = new Paint();
        private float[] mPts;

       /*here comes declaration of parametars



        private void buildPoints() {

        /*here comes some coding*/

            }
        }

        public SampleView(Context context, AttributeSet attributeset) {
            super(context, attributeSet);

            buildPoints();
        }

        @Override 
        protected void onDraw(Canvas canvas) {
            Paint paint = mPaint;

            //here also comes code
        }
    }
}
</code>

Hier ist der XML-Code:

routes.xml

<code><?xml version="1.0" encoding="utf-8"?>
    <ScrollView 
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/scrollView1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
        <HorizontalScrollView 
                android:id="@+id/scrollView2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                    <!-- This code is just to make sure that scroll views work how 
                        I want them to work, image size is 625*351 px
                     <ImageView
                        android:id="@+id/image_View1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/bus_design"
                            /> -->
                     <my.package.DrawPoints.SampleView
                        android:layout_width="fill_parent" 
                        android:layout_height="fill_parent" /> 


        </HorizontalScrollView>
    </ScrollView>
</code>

Wenn ich diese Anwendung ausführe und die Taste in der Hauptaktivität drücke, stürzt die Anwendung ab. Das Zeichnen sieht aus wie in Abbildung 1, wenn ich kein XML-Layout oder Scrollviews verwende:

http://i.stack.imgur.com/za5MP.png Abbildung 1

Ich habe auch versucht, diesen Code nach der Methode setContentView zu verwenden:

<code>View v = new SampleView(this);
addContentView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
            ViewGroup.LayoutParams.FILL_PARENT));
</code>

und auch dieses:

<code>View v = new SampleView(this);
    ScrollView.LayoutParams lp = new ScrollView.LayoutParams(1000, 1000);

    addContentView(v, lp);
</code>

Wenn ich die oben gezeigten Codes verwende, zeigt die App Abbildung 1 ohne Bildlauf an. Es scheint, als würde die zweite Inhaltsansicht diese XML überschreiben, aber sie wird nicht richtig angezeigt. Danach habe ich versucht, diesen Code nach setContentView zu verwenden:

<code>View v = new SampleView(this);
    FrameLayout fl = new FrameLayout(this);
    fl.findViewById(R.id.FrameLayout1);
    fl.addView(v);
</code>

Das Rahmenlayout (FrameLayout1) wird in der Datei routes.xml nach der horizontalen Bildlaufansicht hinzugefügt. Wenn die Anwendung ausgeführt wird, wird ein leerer Bildschirm ohne Abbildung 1 angezeigt. Hat jemand eine Idee, wie ich meinen Code aktualisieren kann, mit dem Abbildung 1 in ScrollView angezeigt wird?

Danke im Voraus!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage