我有一个我想要的按钮 - 围绕其边界的4个图像。 所有图像大小完全相同。 它们必须如图所示。
我不想使用图片按钮,因为它只能附加一张图片, 请不要在图像按钮上创建一个图像 - 因为我有动态订单。
告诉我如何根据按钮位置逐步设置图像的位置。
答案 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;
}
};