今天说下如何让一个控件的宽度显示时占屏幕的一般宽度,且水平居中显示。这里抛砖引玉,给出三种实现方案:

1)线性布局:利用属性android:weightSum和android:layout_weight来实现

2)线性布局:利用属性android:layout_weight和隐藏无关控件的方式来实现

3)线性布局:通过布局文件和代码动态修改控件的布局中地方宽度参数属性

下面分别给出测试代码:

1.利用android:weightSum和android:layout_weight来实现

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center|top"android:background="#FFFFFF"android:weightSum="1"><Buttonstyle="?android:attr/buttonBarStyle"android:id="@+id/idd_btn_one"android:layout_marginTop="10dp"android:background="#FF0000"android:layout_width="0dp"android:layout_height="wrap_content"android:text="宽度占屏幕的一半"android:layout_weight="0.5"/>
</LinearLayout>

2.利用属性android:layout_weight和隐藏无关控件的方式来实现
布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="top"android:orientation="horizontal"android:background="#FFFFFF"><Buttonstyle="?android:attr/buttonBarStyle"android:id="@+id/idd_btn_one"android:layout_marginTop="10dp"android:layout_width="0dp"android:layout_height="wrap_content"android:text="不显示1"android:visibility="invisible"android:layout_weight="1.03"/><Buttonstyle="?android:attr/buttonBarStyle"android:id="@+id/idd_btn_two"android:layout_marginTop="10dp"android:background="#00FF00"android:layout_width="0dp"android:layout_height="wrap_content"android:text="宽度占屏幕的一半"android:layout_weight="2"/><Buttonstyle="?android:attr/buttonBarStyle"android:id="@+id/idd_btn_three"android:layout_marginTop="10dp"android:layout_width="0dp"android:layout_height="wrap_content"android:text="不显示2"android:visibility="invisible"android:layout_weight="1"/>
</LinearLayout>

3.通过布局文件和代码动态修改宽度属性

布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/activity_half_of_screen_three"android:orientation="horizontal"android:gravity="center|top"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonstyle="?android:attr/buttonBarStyle"android:id="@+id/id_btn_one"android:layout_marginTop="10dp"android:background="#0000FF"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:text="宽度占屏幕一半"/>
</LinearLayout>

代码如下:

import android.graphics.Point;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ViewGroup;
import android.widget.Button;import com.mobile.cdtx.blog.R;/*** created by wangwentao 2017/2/10* 通过代码动态修改控件的宽度占屏幕的一半*/
public class HalfOfScreenActivityThree extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_half_of_screen_three);Button btn = (Button) findViewById(R.id.id_btn_one);//获取布局参数ViewGroup.LayoutParams lp = btn.getLayoutParams();lp.width = getScreenWidth()/2;btn.setLayoutParams(lp);}//获取屏幕的宽度public int getScreenWidth() {Point point = new Point();getWindowManager().getDefaultDisplay().getSize(point);return point.x;}//获取屏幕的高度public int getScreenHeight() {Point point = new Point();getWindowManager().getDefaultDisplay().getSize(point);return point.y;}
}

以上三种方式出现的效果是一样的,由于布局比较简单,这里就不贴图了,代码可以直接运行,大家可以直接看到效果

安卓-控制控件的宽度占屏幕的一半且水平居中显示相关推荐

  1. 安卓基本控件与布局的使用

    一.基本控件 在搭建 Android 界面中 有许多的控件给我们使用,有 TextView ,EditText , Button , ImageView 等等,正是有了这些控件,我们才能搭建出好看的界 ...

  2. 安卓APP_ 控件(4)—— ImageView

    摘自:安卓APP_ 控件(4)-- ImageView 作者:丶PURSUING 发布时间: 2021-03-29 21:52:06 网址:https://blog.csdn.net/weixin_4 ...

  3. 安卓基本控件及应用总结

    一.常用两种布局方式 1. 线性布局:LinearLayout  作用:控制组件横向或者纵向排列(将它所包含的控件在线性方向上依次排列)可以分为水平线性:android:orientation= &q ...

  4. 安卓APP(3)——安卓布局控件

    嵌入式之路,贵在日常点滴 ---阿杰在线送代码 目录 一.布局的种类 二.布局和页面的关系 三.显示一张美女图 控件的宽度和高度 四.布局背景颜色,背景图,显示两个美女 关于控件ID 五.常用布局之相 ...

  5. Android在OnCreate中获取控件的宽度和高度

    在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算.在需要自适应屏幕的情况下,这种计算就显得特别重要.另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高 ...

  6. 安卓APP_ 控件(2)—— Button

    摘自:安卓APP_ 控件(2)-- Button 作者:丶PURSUING 发布时间: 2021-03-29 14:20:54 网址:https://blog.csdn.net/weixin_4474 ...

  7. 【安卓深度控件开发(2.2)】LCDView - 进阶绘图

    为什么80%的码农都做不了架构师?>>>    <h2>阅读前题</h2> <p>阅读本节之前需要先阅读<a href="http ...

  8. 【android】两个按钮的宽度各占屏幕的一半

    两个按钮的宽度各占屏幕的一半 <LinearLayout><Button android:layout_height="wrap_content"android: ...

  9. 安卓APP_ 控件(11)webView —— 简单应用:显示网页

    摘自:安卓APP_ 控件(11)webView -- 简单应用:显示网页 作者:丶PURSUING 发布时间: 2021-05-11 11:50:52 网址:https://blog.csdn.net ...

最新文章

  1. 如何将CSDN文档转换成IPYNB格式的文档?
  2. C++知识点60——非类型模板参数
  3. 驱动备份工具哪个好_文章原创度检测工具哪个好?这个工具还有其他你不知道的功能...
  4. POJ 3614-Sunscreen
  5. MemCache在win7上的可视化配置以及Nodejs/Net应用
  6. QT学习:AxWidget界面显示
  7. CodeForces - 1208E Let Them Slide(模拟+multiset)
  8. 计算机重启如何进入设置界面,win7电脑无法正常启动,一开机就进入到bios设置界面怎么办?...
  9. 对C# 程序员来说现在是到目前为止最好的时代
  10. mysql报错 DuplicateKeyException分析与解决
  11. 收藏!企业数据安全防护5条建议
  12. 如何在Ubuntu 18.04上安装Django
  13. 远程登录阿里云上的MySQL
  14. UI设计干货素材|聊天APP界面,临摹学习进步快
  15. HK-2000多功能数据采集仪支持命令说明
  16. 世界互联网大会发布15项领先科技成果
  17. 如何提高服务器响应的数据速度_提升网站服务器的响应速度的方法
  18. 美媒:中国假冒芯片太假 致驻伊美军频繁坠机
  19. 青米母公司动力未来登陆新三板 小米生态链企业首个挂牌上市
  20. java 读取rtf字节_JAVA读取RTF文档

热门文章

  1. 禁止linux关机,如何在Linux中禁用关机和重新启动命令
  2. nginx openresty content_by_lua_file 404错误
  3. C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
  4. python数组每个元素加1_python-根据键转换numpy数组中的每个元素
  5. 液晶字体数字一到九_睡前必听3分钟系列十一:光传输设备和同步数字体系的特点...
  6. 大工18秋《c c 语言程序设计》,大工18秋《毕业论文(设计)写作指导》在线测试1.txt...
  7. ae中合成设置的快捷键_AE项目工作流程讲解及项目与合成设置
  8. java int interger_java面试题之int和Integer的区别
  9. Keras【Deep Learning With Python】实现线性回归模型
  10. python【数据结构与算法】一种时间复杂度和空间复杂度的计算方法