创建图像布局

时间:2013-05-03 10:43:06

标签: android android-layout layout android-imageview

我正在开发一个应用程序。需要的是,我想创建一个布局,如图所示:

Layout

在这里,我采用了相对布局,我将图像作为背景。 图像没有红点(按钮)。

我将红色按钮作为图像按钮放在固定位置。当我在我的galaxy s2上运行时,它看起来很好并且工作正常。

但是当我在LG optimus L3 E400上测试这个布局时。红色按钮不在我设置的位置。

布局代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background" >

    <TextView
        android:id="@+id/textview_navigationbar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/navigationbar"
        android:text="@string/string_map"
        android:gravity="center"
        android:textIsSelectable="false" />


    <RelativeLayout 
        android:layout_below="@+id/textview_navigationbar"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="50sp"
        android:layout_marginBottom="50sp"
        android:background="@drawable/map">

        <ImageButton
            android:id="@+id/imagebutton_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="100dip"
            android:layout_marginLeft="50dip"
            android:background="@drawable/button_1" />

        <ImageButton
            android:id="@+id/imagebutton_2"
            android:layout_below="@+id/imagebutton_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dip"
            android:layout_marginLeft="6dip"
            android:background="@drawable/button_2" />        

        <ImageButton
            android:id="@+id/imagebutton_3"
            android:layout_below="@+id/imagebutton_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="1dip"
            android:layout_marginLeft="40dip"
            android:background="@drawable/button_3" />

    </RelativeLayout>

</RelativeLayout>

在我的LG Optimus L3 E400中,它看起来像:

Layout 2

红色按钮未打开位置。 我不想使用地图视图,因为我不知道,也从未使用它。

请指导我如何摆脱这个问题。如何创建布局以获得最大分辨率和屏幕支持。

2 个答案:

答案 0 :(得分:3)

最简单的方法是创建一个自定义视图,用于保存图像(位图)及其顶部的按钮,并使用onDraw方法绘制按钮,并分析onTouch上的坐标创建你的触摸事件。

如果您保持图像的纵横比(宽度:高度),您可以使用缩放轻松地将按钮映射到合适的位置。

以下是自定义视图示例列表:

你也可以使用AndEngine一个2D图形/游戏引擎来安装android,它将为你完成扩展。

在这里查看:official websiteexamples

答案 1 :(得分:2)

使用Canvas可以做到最好。

或者更简单的方法是编辑图像并在图像中添加这些红点。

你可以使用onTouchListener,在onTouch中你可以获得x和y坐标来完成你的任务

这样的事情: -

    public boolean onTouch(View v, MotionEvent event) {
        int x = event.getX();
        int y = event.getY(); 
      //handle your events on basis of x and y
     }

这不是处理它的最好方法。但应该工作。