1

ドラッグしたときにキャンバスのサイズを変更するために、ShadowBuilder を拡張したいと考えています。ただし、以下のコンパイルエラーのため、コンパイルできません。

これが私の ShadowBuilder のコードです

public class TileShadow : View.DragShadowBuilder
{
    //private Drawable mShadow;

    public TileShadow()
    {
    }

    public TileShadow(View view)
        : base(view)
    {
    }

    protected TileShadow(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }

    public override void OnDrawShadow(Canvas canvas)
    {
        canvas.Scale(1.8f, 1.8f);
        base.OnDrawShadow(canvas);
        //mShadow.Draw(canvas);
        //View.Draw(canvas);
    }
}

エラー 25 はシンボル symbol を見つけることができません: class DragShadowBuilder 場所: class android.view.View extends android.view.View.DragShadowBuilder

ここに画像の説明を入力

4

1 に答える 1

0

どの API レベルをターゲットにしていますか? DragShadowBuilderレベル11以降で利用可能です。

API レベル 12 (最小レベル Android 3.1) をターゲットとする Mono for Android 4.2.6 でコードをテストしたところ、問題なくコンパイルされ、エミュレーターにデプロイされました。

ソリューションのクリーン/再構築を試みましたか?

新しいプロジェクトを最初から作成し、このクラスを実装して、問題が既存のソリューションに限定されているかどうかを確認しましたか?

また、obj\debug\android\src\wordshuffle\android\shadowbuilders\ フォルダーで ACW がどのように見えるかを確認します。

私のはこのように見えました

package androidapplication1;


public class TileShadow
    extends android.view.View.DragShadowBuilder
    implements
        mono.android.IGCUserPeer
    {
    static final String __md_methods;
    static {
        __md_methods = 
            "n_onDrawShadow:(Landroid/graphics/Canvas;)V:GetOnDrawShadow_Landroid_graphics_Canvas_Handler\n" +
            "";
        mono.android.Runtime.register ("AndroidApplication1.TileShadow, AndroidApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", TileShadow.class, __md_methods);
    }


    public TileShadow (android.view.View p0)
    {
        super (p0);
        if (getClass () == TileShadow.class)
            mono.android.TypeManager.Activate ("AndroidApplication1.TileShadow, AndroidApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "Android.Views.View, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=c4c4237547e4b6cd", this, new java.lang.Object[] { p0 });
    }


    public TileShadow ()
    {
        super ();
        if (getClass () == TileShadow.class)
            mono.android.TypeManager.Activate ("AndroidApplication1.TileShadow, AndroidApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "", this, new java.lang.Object[] {  });
    }


    public void onDrawShadow (android.graphics.Canvas p0)
    {
        n_onDrawShadow (p0);
    }

    private native void n_onDrawShadow (android.graphics.Canvas p0);

    java.util.ArrayList refList;
    public void monodroidAddReference (java.lang.Object obj)
    {
        if (refList == null)
            refList = new java.util.ArrayList ();
        refList.add (obj);
    }

    public void monodroidClearReferences ()
    {
        if (refList != null)
            refList.clear ();
    }
}
于 2012-11-11T10:41:24.540 に答える