私はAndroid向けのプログラミングにかなり慣れていません。私のアプリは、開発者の Android Web サイトの API デモのサンプル アプリです。そのサンプル図面のパラメータを変更すると、大きくなります。その図面はスクロール ビューで表示する必要があります (画面に合わせて縮小する必要はありません)。これは私が使用したコードです:
DrawPoints.java
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
}
}
}
ここにxmlコードがあります:
ルート.xml
<?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>
そのアプリケーションを実行してメイン アクティビティのボタンを押すと、アプリケーションがクラッシュします。xml レイアウトまたはスクロールビューを使用していない場合、描画は図 1 のようになります。
http://i.stack.imgur.com/za5MP.png 図1
また、メソッドsetContentViewの後にこのコードを使用しようとしました:
View v = new SampleView(this);
addContentView(v, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT));
そしてこれも:
View v = new SampleView(this);
ScrollView.LayoutParams lp = new ScrollView.LayoutParams(1000, 1000);
addContentView(v, lp);
上記のコードを使用すると、アプリはスクロールビューなしで Figure1 を表示します。2 番目のコンテンツ ビューがその xml を上書きするように見えますが、正しく表示されません。その後、setContentViewの後にこのコードを使用しようとしました:
View v = new SampleView(this);
FrameLayout fl = new FrameLayout(this);
fl.findViewById(R.id.FrameLayout1);
fl.addView(v);
横スクロール表示後、routes.xmlファイルにフレームレイアウト(FrameLayout1)を追加します。アプリケーションを実行すると、図 1 のない空白の画面が表示されます。ScrollView で Figure1 を表示するコードをアップグレードする方法を知っている人はいますか?
前もって感謝します!