要創建視圖,您有兩個主要選項。
其中之一是將其定義在XML中,在您的活動將使用的佈局文件中。
<LinearLayout ... > <!-- or any other layout, see layout documentation in the SDK -->
<ImageView ... <!-- or another view as fits your needs -->
android:id="@+id/myview"
android:src="@drawable/myimage" ... />
</LinearLayout>
然後,您可以參考您的觀點在你的代碼,後你叫的setContentView與findViewById(R.id.myview)。 (當然,如果你說,在XML文件中說,「@ + foo/bar」,你會使用R.foo.bar)。
另一種方式是動態創建它並將其附加到視圖層次結構中。
ImageView v = new ImageView();
v.setImageResource(R.drawable.myimage);
... // initialize your view here
parent.addChild(v);
......左右。
要獲得活動,您可以再次選擇幾個選項。 其中之一是將View(或ImageView)子類化並實現onTouchEvent。您需要修改上面的代碼來創建新類的實例,而不是ImageView(在Java代碼中很明顯,對於XML,您會將其作爲標記名寫入,並確保實現了構造函數(Context,AttributeSet)調用它的超類的構造函數)。 或者,您可以在您的ImageView上編寫TouchDelegate並使用setTouchDelegate,這對您的情況可能更簡單。
另一種方法是創建一個GestureDetector並使用其hitTest方法將觸摸匹配到您的視圖。對於你所描述的任務來說是過度的,但是當你的應用程序變得更加複雜時,它可能會派上用場。