我必须在Xamarin.Android应用程序中显示一个大图,用户必须能够水平和/或垂直滚动它。
答:我的第一个想法是创建一个自定义视图(继承自View),它在OnDraw中处理绘图,然后将自定义视图放在ScrollView中。但在这种情况下我不知道:
仅仅是为了测试我尝试了下面的布局,但是我无法滚动它:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Button
android:id="@+id/btnLoadDiagram"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Load Diagram" />
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:scrollbars = "vertical"
android:scrollbarStyle="insideInset" >
<my.namespace.DiagramView
android:layout_width="2000dp"
android:layout_height="2000dp"
android:id="@+id/diagramView" />
</ScrollView>
</LinearLayout>
B中。第二个想法是从ScrollView继承,但我需要在水平和垂直方向上滚动。
这里推荐的方法是什么?
答案 0 :(得分:1)
最后,我实施了一个基于选项A的解决方案。
我实现了一个继承自Android.Views.View的自定义视图。该视图实现了GestureDetector.IOnGestureListener和ScaleGestureDetector.IOnScaleGestureListener接口,用于滚动和缩放。在内部,我会跟踪当前内容位置,并仅绘制适合视图区域的内容。