同一个activity中通过一个按钮切换两个不同的布局 分类: And...

最近项目中需实现在同一个activity中通过一个按钮切换两个不同的布局,此处的按钮并非同一个按钮控件,

而是在两个不同的布局文件中点击按钮实现布局的切换,具体实现如下:

MenuTestActivity.java

package com.example.menutest;

import com.example.menutext.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MenuTestActivity extends Activity {
	public static int flag = 0;
	private LinearLayout.LayoutParams lp;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.double_frame);
		// Button but = getBtnBack();
		lp = new LinearLayout.LayoutParams(150,
				LinearLayout.LayoutParams.FILL_PARENT);
		lp.setMargins(-150, 0, 0, 0);
		((LinearLayout) findViewById(R.id.leftImage)).setLayoutParams(lp);

		initButton();
	}

	public void initButton() {

		Button button01 = (Button) findViewById(R.id.btnBack01);
		Button btnBack = (Button) findViewById(R.id.btnBack);

		button01.setText("Open");
		button01.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				if (flag == 0) {
					// 第一次单击触发的事件
					LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
							LinearLayout.LayoutParams.FILL_PARENT,
							LinearLayout.LayoutParams.FILL_PARENT);
					lp.setMargins(0, 0, 0, 0);
					((LinearLayout) findViewById(R.id.leftImage))
							.setLayoutParams(lp);
					System.out.println("1,第一次单击触发的事件");
					flag = 1;
				}
			}
		});
		btnBack.setText("Close");
		btnBack.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {
				if (flag == 1) {
					// 第二次单击button.text改变触发的事件
					((LinearLayout) findViewById(R.id.leftImage))
							.setLayoutParams(lp);
					System.out.println("2,第二次单击button.text改变触发的事件");
					flag = 0;
				}
			}
		});
	}

}
double_frame.layout

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

    <LinearLayout
        android:id="@+id/leftImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginLeft="-220dp"
        android:background="@drawable/btn_dial_normal" >

        <include
            android:id="@+id/include01"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            layout="@layout/base_layout_l" >
        </include>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/rightImage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/btn_dial" >

        <include
            android:id="@+id/include02"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            layout="@layout/base_layout_r" >
        </include>
    </LinearLayout>

</LinearLayout>
base_layout_l.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearTop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon" >
        </ImageView>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:height="40dip"
            android:text="Dynamic 2" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearMain"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.0" >
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/relativeBottomTotal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnBack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" 返  回 " >
        </Button>

        <LinearLayout
            android:id="@+id/layoutBottom"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/btnBack"
            android:layout_alignTop="@+id/btnBack"
            android:layout_toRightOf="@+id/btnBack"
            android:gravity="right" >
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>
base_layout_r.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearTop"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon" >
        </ImageView>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:height="40dip"
            android:text="Dynamic 1" >
        </TextView>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearMain"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.0" >
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/relativeBottomTotal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <Button
            android:id="@+id/btnBack01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=" 1 " >
        </Button>

        <LinearLayout
            android:id="@+id/layoutBottom"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/btnBack"
            android:layout_alignTop="@+id/btnBack"
            android:layout_toRightOf="@+id/btnBack"
            android:gravity="right" >
        </LinearLayout>
    </RelativeLayout>

</LinearLayout>




源码下载地址:http://download.csdn.net/detail/u010963246/8970561


版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/xieping/p/4714144.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例,演示如何通过单个按钮在三个图像之间切换: 1. 首先,在布局XML文件添加三个ImageView控件,每个控件分别显示一个图像: ``` <ImageView android:id="@+id/image1" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/image1" /> <ImageView android:id="@+id/image2" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/image2" android:visibility="gone" /> <ImageView android:id="@+id/image3" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/image3" android:visibility="gone" /> ``` 2. 接下来,在Activity的Java文件声明三个ImageView和一个Button: ``` private ImageView imageView1, imageView2, imageView3; private Button button; ``` 3. 在onCreate方法初始化这些控件: ``` imageView1 = findViewById(R.id.image1); imageView2 = findViewById(R.id.image2); imageView3 = findViewById(R.id.image3); button = findViewById(R.id.button); ``` 4. 在Button的点击事件,使用setVisibility方法显示或隐藏三个ImageView一个。在这个例子,我们循环显示三个图像: ``` button.setOnClickListener(new View.OnClickListener() { int currentImage = 1; @Override public void onClick(View v) { switch (currentImage) { case 1: imageView1.setVisibility(View.GONE); imageView2.setVisibility(View.VISIBLE); currentImage = 2; break; case 2: imageView2.setVisibility(View.GONE); imageView3.setVisibility(View.VISIBLE); currentImage = 3; break; case 3: imageView3.setVisibility(View.GONE); imageView1.setVisibility(View.VISIBLE); currentImage = 1; break; } } }); ``` 在这个示例,我们使用一个整数变量currentImage来跟踪当前显示的图像。每次单击按钮时,我们将其值从1到3循环。然后,根据当前图像的值,我们使用setVisibility方法将一个ImageView设置为可见,将其他两个设置为不可见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值