如何切换ImageView按钮

时间:2019-01-27 05:49:45

标签: java android kotlin imageview

我当前有三个Imageview按钮,它们在我的android应用程序中调用了三个不同的函数。我要使用3个按钮,而不是3个按钮,该按钮应在每次点击时调用每个功能(如切换按钮)。请找到我当前的三个独立按钮(ImageView)的XML结构

<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" />

这是功能调用脚本,该脚本在主要活动中使用。

 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++}

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以拥有的是一个按钮和一个计数器,您上次更改了imageView。

    int counter = 0;
    button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 switch(counter){
                    case 0:
                    //First ImageView
                    break;
                    case 1:
                    //Second ImageView
                    break;
                    case 2:
                    //Third ImageView 
                    counter = 0;
                    break;
                }
            }
        });

因此,每次您单击按钮时,它将更改计数器值,直到到达第三个imageView。再次单击它后,该按钮将聚焦在第一个imageView上。