要创建视图,您有两个主要选项。
其中之一是将其定义在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方法将触摸匹配到您的视图。对于你所描述的任务来说是过度的,但是当你的应用程序变得更加复杂时,它可能会派上用场。