如何从 ImageView 获取上下文

Tim*_*Lee 0 java android touch

我试图使 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);
}
Run Code Online (Sandbox Code Playgroud)

我想我需要更改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"
Run Code Online (Sandbox Code Playgroud)

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

DrawView 的类在Android 2D Graphics Example中有文档,所以这里不再重复。

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

Dee*_*eeV 5

用于Context创建的View实际上是 the Activity,因此它已经分配给this引用。当你打电话时它就设置好了setContentView()

另外,View#getContext()

因此,要检索Context您需要获取对视图的引用,然后调用getContext(). 在这种具体情况下,它将是

ImageView img = (ImageView) findViewById(R.id.canvasview);
Context c = img.getContext();
Run Code Online (Sandbox Code Playgroud)