如何在按钮边界上定位不同的图像

时间:2014-11-10 20:07:38

标签: android image

我有一个我想要的按钮 - 围绕其边界的4个图像。 所有图像大小完全相同。 它们必须如图所示。

我不想使用图片按钮,因为它只能附加一张图片, 请不要在图像按钮上创建一个图像 - 因为我有动态订单。

告诉我如何根据按钮位置逐步设置图像的位置。

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用相对布局来实现此目的! 你也可以点击相对布局并在其上设置onClickListener并在其上制作点击动画!它将作为带有自定义布局的大按钮工作!

<RelativeLayout 
    android:layout_height="200dp"
    android:layout_width="200dp"   
    android:id="@+id/real_button"
    android:clickable="true">

    <Button android:id="@+id/fake_empty_button"
            android:layout_width="100dp" 
            android:layout_height="100dp"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
            android:visibility="invisible"/>

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"   
        android:layout_above="@+id/fake_empty_button"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher"/>

    <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"   
        android:layout_toLeftOf="@+id/fake_empty_button"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher"/>
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"   
        android:layout_toRightOf="@+id/fake_empty_button"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher"/>
    <ImageView 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"   
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/fake_empty_button"
        android:src="@drawable/ic_launcher"/>
</RelativeLayout>

而不是200dp使3 *画面高度而不是100dp使1 *画面高度!

在活动中:

int mX = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    findViewById(R.id.real_button).setOnClickListener(listener);
}

private OnClickListener listener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        if (mX % 2 == 0) {
            findViewById(R.id.real_button).setBackgroundColor(Color.RED);
        } else {
            findViewById(R.id.real_button).setBackgroundColor(Color.WHITE);
        }
        mX += 1;
    }
};

This how it looks like