2012-10-31 63 views
0

我想讓ImageView成爲一個可以用手指畫出的表面。如何從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

用於創建ViewContext實際上是Activity,因此它已被分配到this參考。它是在您致電setContentView()時設置的。

另外,View#getContext()

因此,要檢索Context,您將獲得對該視圖的引用,然後調用getContext()。在這個特定情況下,它將是

ImageView img = (ImageView) findViewById(R.id.canvasview); 
Context c = img.getContext(); 
+0

啊,謝謝。它看起來像Context c = img.getContext();'拋出了一個NullPointerException,它通過將'setContentView(R.layout.activity_main);'放在對'getContext'的調用之上來解決。 DrawView類正在實例化,但現在onTouchHandler事件並未被解僱,所以我正在研究這個。謝謝您的幫助! –