如何切换 ImageView 按钮
How to toggle ImageView buttons
我目前有三个 Imageview 按钮,它们在我的 android 应用程序中调用三个不同的功能。我想使用一个按钮而不是 3 个按钮,它应该在每次点击时调用每个功能(如切换按钮)。请找我目前的XML三个独立按钮的结构(ImageView)
<ImageView
android:id="@+id/img_align_left"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="TODO"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_left" />
<ImageView
android:id="@+id/img_align_center"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_center" />
<ImageView
android:id="@+id/img_align_right"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_right" />
这里是函数调用脚本,主要用于activity。
img_align_left.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_START) }
img_align_center.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_CENTER) }
img_align_right.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_END) }
如果查询为您提供了足够的信息,请告诉我。
谢谢!
------------------------更新-------------------- ------------------
基于@Kam 代码,我能够解决问题(我使用 Kotlin)。这是代码。
var count=0
img_align_left.setOnClickListener {
when (count) {
0 -> {
alingnText(View.TEXT_ALIGNMENT_TEXT_START)
}
1 -> {
alingnText(View.TEXT_ALIGNMENT_CENTER)
}
2 ->
{alingnText(View.TEXT_ALIGNMENT_TEXT_END)}
}
if(count>1)
count=0
else
count++}
谢谢:)
您可以拥有一个按钮和一个您上次更改 imageView 的计数器。
int counter = 0;
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(counter){
case 0:
//First ImageView
counter++;
break;
case 1:
//Second ImageView
counter++;
break;
case 2:
//Third ImageView
counter = 0;
break;
}
}
});
因此,每次单击按钮时,它都会更改计数器值,直到到达第三个 imageView。再次点击后,按钮将聚焦于第一个imageView。
我目前有三个 Imageview 按钮,它们在我的 android 应用程序中调用三个不同的功能。我想使用一个按钮而不是 3 个按钮,它应该在每次点击时调用每个功能(如切换按钮)。请找我目前的XML三个独立按钮的结构(ImageView)
<ImageView
android:id="@+id/img_align_left"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="TODO"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_left" />
<ImageView
android:id="@+id/img_align_center"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_center" />
<ImageView
android:id="@+id/img_align_right"
android:layout_width="@dimen/icon_width"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"
app:srcCompat="@drawable/ic_format_align_right" />
这里是函数调用脚本,主要用于activity。
img_align_left.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_START) }
img_align_center.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_CENTER) }
img_align_right.setOnClickListener { alingnText(View.TEXT_ALIGNMENT_TEXT_END) }
如果查询为您提供了足够的信息,请告诉我。 谢谢!
------------------------更新-------------------- ------------------
基于@Kam 代码,我能够解决问题(我使用 Kotlin)。这是代码。
var count=0
img_align_left.setOnClickListener {
when (count) {
0 -> {
alingnText(View.TEXT_ALIGNMENT_TEXT_START)
}
1 -> {
alingnText(View.TEXT_ALIGNMENT_CENTER)
}
2 ->
{alingnText(View.TEXT_ALIGNMENT_TEXT_END)}
}
if(count>1)
count=0
else
count++}
谢谢:)
您可以拥有一个按钮和一个您上次更改 imageView 的计数器。
int counter = 0;
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(counter){
case 0:
//First ImageView
counter++;
break;
case 1:
//Second ImageView
counter++;
break;
case 2:
//Third ImageView
counter = 0;
break;
}
}
});
因此,每次单击按钮时,它都会更改计数器值,直到到达第三个 imageView。再次点击后,按钮将聚焦于第一个imageView。