【问题标题】:Create ImageButton after pushing on ImageButton按下 ImageButton 后创建 ImageButton
【发布时间】:2020-04-05 08:39:29
【问题描述】:

我有两行ImageButtons。 А单击第一行中的任何一个后,我希望删除第一行并显示第二行,ImageButton 居中。它应该看起来像这样:“https://lifehacker.ru/special/travel-checklist/”。

第一行的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/mainlayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#bbbbbb"
    android:orientation="horizontal">


    <ImageButton
        android:id="@+id/winter"
        android:layout_width="192dp"
        android:layout_height="183dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:layout_weight="2"
        android:gravity="left|center_vertical"
        android:onClick="Winter"
        android:paddingTop="32sp"
        android:scaleType="fitCenter"
        android:src="@drawable/snejinka"
        android:text="Зима"
        android:textColor="#FFFFFF" />


    <ImageButton
        android:id="@+id/Middle"
        android:layout_width="192dp"
        android:layout_height="183dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:layout_weight="2"
        android:gravity="left|center_vertical"
        android:onClick="Middle"
        android:paddingTop="32sp"
        android:scaleType="fitCenter"
        android:src="@drawable/listok"
        android:text="Весна/Осень"
        android:textColor="#FFFFFF" />

    <ImageButton
        android:id="@+id/Summer"
        android:layout_width="192dp"
        android:layout_height="183dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="center"
        android:layout_weight="2"
        android:gravity="left|center_vertical"
        android:onClick="Summer"
        android:paddingTop="32sp"
        android:scaleType="fitCenter"
        android:src="@drawable/unnamed"
        android:text="Лето"
        android:textColor="#FFFFFF" />


</LinearLayout>

第二行的布局:

<ImageButton
            android:id="@+id/three"
            android:layout_width="192dp"
            android:layout_height="183dp"
            android:layout_alignParentRight="true"
            android:layout_weight="2"
            android:gravity="left|center_vertical"
            android:onClick="three"
            android:paddingTop="32sp"
            android:scaleType="fitCenter"
            android:src="@drawable/three"
            android:text="three"
            android:textColor="#FFFFFF" />
        <ImageButton
            android:id="@+id/seven"
            android:layout_width="192dp"
            android:layout_height="183dp"
            android:layout_alignParentRight="true"
            android:layout_weight="2"
            android:gravity="left|center_vertical"
            android:onClick="seven"
            android:paddingTop="32sp"
            android:scaleType="fitCenter"
            android:src="@drawable/seven"
            android:text="three"
            android:textColor="#FFFFFF" />
        <ImageButton
            android:id="@+id/fourteen"
            android:layout_width="192dp"
            android:layout_height="183dp"
            android:layout_alignParentRight="true"
            android:layout_weight="2"
            android:gravity="left|center_vertical"
            android:onClick="fourteen"
            android:paddingTop="32sp"
            android:scaleType="fitCenter"
            android:src="@drawable/fourteen"
            android:text="three"
            android:textColor="#FFFFFF" />

这是我对两行的活动。不知道,第一次点击后如何让第二行出现(第二行在cmets下)

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import static com.example.samsunghomework.R.id.*;

public class MainActivity extends AppCompatActivity {
    ImageButton winter;
    ImageButton middle;
    ImageButton summer;
    LinearLayout mainlayout;

    /*
     ImageButton three;
     ImageButton seven;
     ImageButton fourteen;
 */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        winter = (ImageButton) findViewById(R.id.winter);
        middle = (ImageButton) findViewById(Middle);
        summer = (ImageButton) findViewById(Summer);
        mainlayout = (LinearLayout) findViewById(R.id.mainlayout);
        /*
        three = (ImageButton) findViewById(R.id.three);
        seven = (ImageButton) findViewById(R.id.seven);
        fourteen = (ImageButton) findViewById(R.id.fourteen);
     */
    }


    int galka = 0;
    int curr = 0;

    public void Winter(View view) {
        //   mainlayout.removeAllViews();
        if (galka == 0) winter.setImageResource(R.drawable.galka);

        else if (curr == 2) {
            middle.setImageResource(R.drawable.listok);
            winter.setImageResource(R.drawable.galka);
        }
        if (curr == 3) {
            summer.setImageResource(R.drawable.unnamed);
            winter.setImageResource(R.drawable.galka);
        }
        galka = 1;
        curr = 1;
      //  mainlayout.addView(new ImageButton(this));

        ImageButton imageButton = new ImageButton(MainActivity.this);
        imageButton.setImageResource(R.drawable.galka);
        LinearLayout.LayoutParams imageViewLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

        imageButton.setLayoutParams(imageViewLayoutParams);

        mainlayout.addView(imageButton);
    }


    public void Middle(View view) {
        if (galka == 0) middle.setImageResource(R.drawable.galka);
        else if (curr == 1) {
            winter.setImageResource(R.drawable.snejinka);
            middle.setImageResource(R.drawable.galka);
        }
        if (curr == 3) {
            summer.setImageResource(R.drawable.unnamed);
            middle.setImageResource(R.drawable.galka);
        }
        galka = 1;
        curr = 2;
    }

    public void Summer(View view) {
        if (galka == 0) summer.setImageResource(R.drawable.galka);
        else if (curr == 1) {
            winter.setImageResource(R.drawable.snejinka);
            summer.setImageResource(R.drawable.galka);
        }

        if (curr == 2) {
            middle.setImageResource(R.drawable.listok);
            summer.setImageResource(R.drawable.galka);

        }
        galka = 1;
        curr = 3;
    }

    int galka2 = 0;
    int curr2 = 0;
/*
    public void three(View view) {
        if (galka2 == 0) three.setImageResource(R.drawable.galka);
        else if (curr2 == 2) {
            seven.setImageResource(R.drawable.seven);
            three.setImageResource(R.drawable.galka);
        }
        if (curr2 == 3) {
            fourteen.setImageResource(R.drawable.fourteen);
            three.setImageResource(R.drawable.galka);
        }
        galka2 = 1;
        curr2 = 1;

    }

    public void seven(View view) {
        if (galka2 == 0) seven.setImageResource(R.drawable.galka);
        else if (curr2 == 1) {
            three.setImageResource(R.drawable.three);
            seven.setImageResource(R.drawable.galka);
        }
        if (curr2 == 3) {
            fourteen.setImageResource(R.drawable.fourteen);
            seven.setImageResource(R.drawable.galka);
        }
        galka2 = 1;
        curr2 = 2;

    }

    public void fourteen(View view) {
        if (galka2 == 0) fourteen.setImageResource(R.drawable.galka);
        else if (curr2 == 1) {
            three.setImageResource(R.drawable.three);
            fourteen.setImageResource(R.drawable.galka);
        }

        if (curr2 == 2) {
            seven.setImageResource(R.drawable.seven);
            fourteen.setImageResource(R.drawable.galka);

        }
        galka2 = 1;
        curr2 = 3;

    }
*/
}

【问题讨论】:

  • 添加到第一行的 OnClickListener 中,例如 SecondRowButtons.setVisibility(View.VISIBLE) 和 FirstRowButtons.setVisibility(View.INVISIBLE)

标签: android imagebutton


【解决方案1】:

单击第一行中的多个 ImageButton 项后,您可以在具有多个 ImageButton 的线性布局中播放可见性。

你可以试试这个代码。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    tools:context=".MainActivity">

    <LinearLayout
        android:id="@+id/layoutRowOne"
        android:orientation="horizontal"
        android:background="@android:color/holo_blue_light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:text="YES"
            android:id="@+id/btnLayoutOneYes"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <Button
            android:text="NO"
            android:id="@+id/btnLayoutOneNo"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/layoutRowTwo"
        android:orientation="horizontal"
        android:visibility="gone"
        android:background="@android:color/holo_orange_light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button
            android:text="HOT"
            android:id="@+id/btnLayoutTwoHot"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

        <Button
            android:text="COLD"
            android:id="@+id/btnLayoutTwoCold"
            android:layout_weight="1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>

    </LinearLayout>

</LinearLayout>

MainActivity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    private var statusRowOne = false
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        btnLayoutOneYes.setOnClickListener {
            statusRowOne = true
            if (statusRowOne) {
                layoutRowOne.visibility = View.GONE
                layoutRowTwo.visibility = View.VISIBLE
            }
        }
        btnLayoutOneNo.setOnClickListener {
            statusRowOne = true
            if (statusRowOne) {
                layoutRowOne.visibility = View.GONE
                layoutRowTwo.visibility = View.VISIBLE
            }
        }
    }
}

我希望这段代码可以帮助您解决问题。

【讨论】:

    【解决方案2】:

    您可以使用线性布局和框架布局将它们分开并根据点击事件显示图像按钮。

    布局.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
        android:id="@+id/mainlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#bbbbbb"
        android:orientation="horizontal">
    
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="2"
            android:orientation="horizontal">
    
            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="2">
    
                <ImageButton
                    android:id="@+id/winter"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="Winter"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@drawable/snejinka"
                    android:text="Зима"
                    android:textColor="#FFFFFF"
                    android:visibility="visible" />
    
                <ImageButton
                    android:id="@+id/seven"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="seven"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@drawable/seven"
                    android:text="three"
                    android:textColor="#FFFFFF"
                    android:visibility="invisible" />
    
            </FrameLayout>
    
            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="2">
    
                <ImageButton
                    android:id="@+id/Middle"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="Middle"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@drawable/ic_launcher_background"
                    android:text="Весна/Осень"
                    android:textColor="#FFFFFF" />
    
                <ImageButton
                    android:id="@+id/three"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="three"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@drawable/three "
                    android:text="three"
                    android:textColor="#FFFFFF"
                    android:visibility="invisible" />
            </FrameLayout>
    
            <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="2">
    
                <ImageButton
                    android:id="@+id/Summer"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="Summer"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@mipmap/unnamed"
                    android:text="Лето"
                    android:textColor="#FFFFFF" />
    
                <ImageButton
                    android:id="@+id/fourteen"
                    android:layout_width="192dp"
                    android:layout_height="183dp"
                    android:layout_alignParentRight="true"
                    android:layout_gravity="center"
                    android:layout_weight="2"
                    android:gravity="left|center_vertical"
                    android:onClick="fourteen"
                    android:paddingTop="32sp"
                    android:scaleType="fitCenter"
                    android:src="@drawable/fourteen"
                    android:text="three"
                    android:textColor="#FFFFFF"
                    android:visibility="invisible" />
            </FrameLayout>
    
        </LinearLayout>
    
    
    </LinearLayout>
    

    MainActivity.java

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
            import android.view.View;
            import android.widget.Button;
            import android.widget.ImageButton;
            import android.widget.ImageView;
            import android.widget.LinearLayout;
    
    
    public class MainActivity extends AppCompatActivity {
        LinearLayout mainlayout;
        ImageButton winter;
        ImageButton middle;
        ImageButton summer;
        ImageButton three;
        ImageButton seven;
        ImageButton fourteen;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mainlayout = findViewById(R.id.mainlayout);
    
            winter = findViewById(R.id.winter);
            middle = findViewById(R.id.Middle);
            summer = findViewById(R.id.Summer);
    
            three = findViewById(R.id.three);
            seven = findViewById(R.id.seven);
            fourteen = findViewById(R.id.fourteen);
    
            winter.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    action();
                }
            });
    
            middle.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    action();
                }
            });
    
            summer.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    action();
                }
            });
        }
    
        public void action() {
            winter.setVisibility(View.INVISIBLE);
            middle.setVisibility(View.INVISIBLE);
            summer.setVisibility(View.INVISIBLE);
    
            three.setVisibility(View.VISIBLE);
            fourteen.setVisibility(View.VISIBLE);
            seven.setVisibility(View.VISIBLE);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2013-03-04
      • 2012-05-15
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多