我想要做的是左侧有两个按钮,右侧有imageView。这些按钮可激活相机或从图库中显示照片并将其显示在imageView上。此外,如果用户触摸图像,则矩形形状跟随用户的移动。
我制作了一个包含按钮和imageView的xml文件。 然后,我使用画布为矩形形状创建了一个自定义视图。
我在想的是在imageView上设置touchListener并根据坐标,app在画布上生成与imageView重叠的矩形。
以下是我的问题,我可以同时使用xml文件和自定义视图吗?那意味着这两件事可以重叠吗?
我试过
v = new DrawingTheBall(this); // v is my custom view
setContentView(v);
setContentView(R.layout.activity_main);
没有错误,但只出现第一个被叫的。
如果重叠是不可能的,那么我应该只将按钮和imageView放在自定义视图类中吗?
答案 0 :(得分:2)
是的,您可以使用XML中的布局资源和以编程方式一起创建的自定义视图。 为此你需要:
在XML中为自定义视图指定视图持有者并为其提供ID(可以是根布局)。例如:
<LinearLayout
android:id="@+id/customViewContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
setContentView(R.layout.xml_resource);
LinearLayout custonViewContainer = (LinearLayout)findViewById(R.id.customViewContainer);
custonViewContainer.addView(view);
这就是它!
答案 1 :(得分:0)
您还可以将自定义视图放在XML布局文件中:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.package.DrawingTheBall
android:id="@+id/drawingTheBall"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>