在Xamarin中使用TouchImageView

时间:2014-05-11 15:56:31

标签: c# android xamarin

我正在尝试使用Justin Toth的TouchImageView的C#端口。图像显示正确(它甚至对Click事件做出反应),但它不会滚动或缩放。由于代码没有文档,我不知道如何使用它。是自动缩放和滚动,我是否必须设置它甚至手动实现它?以下是我的代码:

Main.axml(TouchImageView位于Customized.Layout名称空间中)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:p1="http://schemas.android.com/apk/res/android"
    p1:orientation="vertical"
    p1:minWidth="25px"
    p1:minHeight="25px"
    p1:layout_width="match_parent"
    p1:layout_height="match_parent"
    p1:id="@+id/alinearLayout2">
    <Button
        p1:text="@string/butNextTurn"
        p1:layout_width="match_parent"
        p1:layout_height="wrap_content"
        p1:id="@+id/abutton1" />
    <TextView
        p1:text="Text"
        p1:layout_width="match_parent"
        p1:layout_height="wrap_content"
        p1:id="@+id/acoordinates"
        p1:layout_alignParentBottom="true"
        p1:textColor="@color/brick" />
    <Customized.Layout.TouchImageView
        p1:id="@+id/aview"
        p1:layout_width="match_parent"
        p1:layout_height="match_parent" />
</LinearLayout>

MainActivity.cs:

protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        SetContentView(Resource.Layout.Main);

        Customized.Layout.TouchImageView view = FindViewById<Customized.Layout.TouchImageView>(Resource.Id.aview);

        if (view != null)
        {
            view.SetImageResource(Resource.Drawable.image);
            view.VerticalScrollBarEnabled = true;
            view.HorizontalScrollBarEnabled = true;
        }
    }

1 个答案:

答案 0 :(得分:4)

过了一段时间, fabionuno 回答了我的问题here

在TouchImageView.cs的代码中

SetOnTouchListener(new TouchImageViewListener(this));

应改为

base.SetOnTouchListener(new TouchImageViewListener(this));

无论如何,对于大图像,TouchImageView被证明非常慢(至少在我的情况下)。对于会遇到类似问题的任何人,我建议使用实现GestureListener的WebView(或您自己的继承WebView的类)(如Xamarin tutorial中所述)