问题描述:一张图片,在需要显示的时候显示,否则处于隐藏状态。图片隐藏时不占用任何的布局控件;图片显示时,图片一下的所有布局依次向下移动。如图所示:

点击按钮,图片显示,再次点击,图片消失。

问题解决:

通过上网查资料,可以通过view的可见性实现以上功能。

在布局文件xml中通过属性 android:visibility进行控制。

该属性有三个参数,分别为:visible(可见)invisible(不可见)以及gone

gone与invisible都是不可见的。但不同的是,gone在隐藏的情况下不会占用任何的布局空间。

明白以上属性以及属性参数之后,可以在java文件中,为button设计监听器,点击button则可以控制view的可见性了。

下面给出完整代码。

另外,我已将项目工程上传至csdn,需要的朋友可以下载。地址:http://download.csdn.net/download/jenn_lian/4520407

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

<TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

<Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="click it !"
        android:id="@+id/btn_mybuttom"
        />
    <ImageView
        android:id="@+id/img"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:src="@drawable/youtube"
       
        />
    <TextView
        android:text="it is an example!"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>

java文件:

package com.csdn.blog;

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

/**
 * the activity is to show the invisible layout when it is necessary
 *
 * @author jenn
 *
 */
public class SumaryActivity extends Activity {

private Button btn_Mybutton;
 private ImageView imgView_img;

/** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

findView();

btn_Mybutton.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

// i=0,it is visible;i=4,it is invisible;i=0,it is gone;
    int i = 0;
    i = imgView_img.getVisibility();
    if (i == 8) {
     imgView_img.setVisibility(View.VISIBLE);
    } else {
     imgView_img.setVisibility(View.GONE);
    }

}
  });
 }

/**
  * find views by id for each one
  */
 public void findView() {
  btn_Mybutton = (Button) findViewById(R.id.btn_mybuttom);
  imgView_img = (ImageView) findViewById(R.id.img);
 }
}

下面对i进行简单的说明。getVisibility()方法是获取当前空间是否可见,如果可见,返回值为8,不可见但占空间,返回值为4;不可见并不占用空间,返回值为0.

关于android中的隐藏布局相关推荐

  1. Android中的表格布局

    文章目录 1 Android中的表格布局 1 Android中的表格布局 重要属性: android:stretchColumns android:shrinkColumns android:coll ...

  2. Android中动态初始化布局参数以及ConstraintLayout使用中遇到的坑

    Android中动态初始化布局以及ConstraintLayout遇到的一个坑 ConstraintLayout是Android中的一个很强大的布局,它通过控件之间的相对定位,来完成一个layout中 ...

  3. Android中的约束布局

    文章目录 1 Android中的约束布局 1.1 约束布局的重要属性 1.2 约束布局示例 1 Android中的约束布局 1.1 约束布局的重要属性 重要属性: app:layout_constra ...

  4. Android中的网格布局

    文章目录 1 Android中的网格布局 1 Android中的网格布局 重要属性: android:rowCount(行数量) android:columnCount (列数量) android:l ...

  5. Android中的帧布局

    文章目录 1 Android中的帧布局 1 Android中的帧布局 首先看下效果: 下面看下xml: <?xml version="1.0" encoding=" ...

  6. Android中的相对布局

    文章目录 1 Android中的相对布局 1.1 相对布局的重要属性 1.2 相对布局示例 1 Android中的相对布局 1.1 相对布局的重要属性 相对于父容器(取值:true/false),如: ...

  7. Android中的常见布局

    文章目录 1 常见布局 2 创建布局的方式 1 常见布局 Android中的常见布局如下: 线性布局(LinearLayout): 相对布局(RelativeLayout): 帧布局(FrameLay ...

  8. Android 中LayoutInflater(布局加载器)之介绍篇

    本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢 博客地址:http://blog.csdn.net/l540675759/article/details/78099358 前 ...

  9. 1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...

    1.请介绍下Android中常用的5种布局 Android中常用的5种布局分别为:FrameLaout(框架布局).LinearLayout(线性布局).AbsoluteLayout(绝对布局).Re ...

最新文章

  1. Canvas入门-利用Canvas绘制好玩的电子时钟
  2. 解决“ORA-01036: 非法的变量名/编号“错误
  3. node-rsa加密,java解密调试
  4. flip java_java的flip(). 这里用flip()有什么作用?这是反转缓冲区的方法,好像用不上。...
  5. 嵌入式基础认识2:shell脚本的一些简单语法规则
  6. JAVA-date(计算时间差)
  7. Java核心技术 卷II 高级特性 原书第9版pdf
  8. 2019.1.21jQuery
  9. Windows Server 2008R2配置ISCS存储
  10. select case when与IF的用法
  11. 1302数码管c语言程序,基于AVR单片机的DS1302数码管时间显示C语言程序设计
  12. VMware vSphere中资源池介绍
  13. hdu5773 The All-purpose Zero(LIS变形)
  14. fiddler抓手机APP包(安卓)
  15. PC版微信加密图片解密思路与代码实现_Python
  16. win10戴尔游侠GTX1050TI+TensorFlow-gpu+CUDA10.0.130+CUDNN7.4.1.5配置深度学习环境
  17. resolution will not be reattempted until the update interval of XXX has elapsed or updates are force
  18. 电子签名生成的图片为空白,以及生成透明底签名图片转为白色底
  19. STM32F4xx的时钟树
  20. C语言详细知识点(上)

热门文章

  1. 考研总结——2018北航计算机学院
  2. Java编程:数组遍历的基本案例
  3. redis源码分析之ae_epoll.c
  4. tomcat8集群+nginx1.8+redis
  5. 5.算法进阶——kafka消息查询(二分法)——稀疏索引与B+树索引的对比
  6. Linux-系统管理14-文件系统与日志
  7. 大数据解读B站火过蔡徐坤的“鬼畜“区巨头们
  8. 实现android三页面跳转的简单跳转
  9. 什么是PV、UV、PR
  10. 从键盘输入一个月号(1-12),并显示该月号的英文名称