我是一名新手,刚开始接触Android编程。我的应用程序是从开发者Android网站上的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 代码:
routes.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所示: 图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而没有滚动视图,似乎第二个内容视图覆盖了XML,但它并没有正确显示。 之后,我尝试在setContentView之后使用以下代码:
View v = new SampleView(this);
FrameLayout fl = new FrameLayout(this);
fl.findViewById(R.id.FrameLayout1);
fl.addView(v);
在水平滚动视图之后的routes.xml文件中添加Frame布局(FrameLayout1)。当应用程序运行时,我得到了一个没有Figure1的空白屏幕(见图1)。 有人知道如何升级我的代码以在ScrollView中显示Figure1吗?
提前感谢!