0

我正在尝试使 ImageView 成为我可以用手指在上面绘制的表面。

我遵循了Android 2D Graphics Example,这导致整个屏幕可绘制(有一些问题,在问题8287949中讨论过,但与我正在尝试做的事情有些脱节。)

我正在与:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceStatA);
    // getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    // requestWindowFeature(Window.FEATURE_NO_TITLE);
    drawView = new DrawView(this);
    drawView.requestFocus();
    setContentView(R.layout.activity_main);
}

我想我需要更改drawView = new DrawView(this)为引用我在中定义的资源的上下文的东西activity_main.xml

ImageView
    android:id="@+id/canvasview"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/btnRed"
    android:background="@drawable/kitty"

但是,我要么不知道我在 API 参考中寻找什么,要么我没有找到它。

DrawView 的类在Android 2D Graphics Example中有说明,这里不再赘述。

我一直在通过 AppInventor 工作,并尝试使用真正的 Android SDK 复制我在 Eclipse 中学到的东西,但我对教程 #1 感到困惑,对于新手的问题,我感到很抱歉!

4

1 回答 1

4

Context用于创建的实际上View是,Activity所以它已经分配给this参考。它在您调用时设置setContentView()

另外,View#getContext()

因此,要检索Context您将获得对 View 的引用,然后调用getContext(). 在这种特定情况下,它将是

ImageView img = (ImageView) findViewById(R.id.canvasview);
Context c = img.getContext();
于 2012-10-31T21:39:31.273 回答