IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 安卓APP开发之界面布局 -> 正文阅读

[移动开发]安卓APP开发之界面布局

页面布局类型

页面布局
相对布局结构:
< RelativeLayout >

< TextView 
/>

< /RelativeLayout >

控件的属性控制:

android:layout_width="match_parent"
宽度

android:layout_height="match_parent"
高度

match_parent
父控件有多大,控件尺寸就多大
wrap_content
内容多大,就生成多大

android:background="@drawable/meinv_2"
控制背景
可以是颜色,可以是图片

activity_main.xml布局文件测试

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
    tools:context=".MainActivity" >
    
</RelativeLayout>

android:id="@+id/meinv_3"
给控件命名
@+id/
添加控件
后面接控件名字

android:layout_below="@id/meinv_3" 
控制控件存放在相对于@id/meinv_3这个控件的下放

界面测试效果代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
    tools:context=".MainActivity" >
	
    <RelativeLayout 
        android:id="@+id/meinv_3"
        android:layout_width="match_parent"
		android:layout_height="400dp"
        android:background="@drawable/meinv_3"
        ></RelativeLayout>
    
    <RelativeLayout
        android:layout_below="@id/meinv_3" 
        android:layout_width="match_parent"
		android:layout_height="400dp"
        android:background="@drawable/meinv_2"
        ></RelativeLayout>

</RelativeLayout>

界面显示结果:
界面显示结果

RelativeLayout中的子控件常用属性

1、相对于父控件

例如:android:layout_alignParentTop=“true”

  • android:layout_alignParentTop 控件的顶部与父控件的顶部对齐;
  • android:layout_alignParentBottom 控件的底部与父控件的底部对齐;
  • android:layout_alignParentLeft 控件的左部与父控件的左部对齐;
  • android:layout_alignParentRight 控件的右部与父控件的右部对齐;

2、相对给定Id控件

例如:android:layout_above=“@id/**”

  • android:layout_above 控件的底部置于给定ID的控件之上;
  • android:layout_below 控件的底部置于给定ID的控件之下;
  • android:layout_toLeftOf 控件的右边缘与给定ID的控件左边缘对齐;
  • android:layout_toRightOf 控件的左边缘与给定ID的控件右边缘对齐;
  • android:layout_alignBaseline 控件的baseline与给定ID的baseline对齐;
  • android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐;
  • android:layout_alignBottom 控件的底部边缘与给定ID的底部边缘对齐;
  • android:layout_alignLeft 控件的左边缘与给定ID的左边缘对齐;
  • android:layout_alignRight 控件的右边缘与给定ID的右边缘对齐;

3、居中

例如:android:layout_centerInParent=“true”

  • android:layout_centerHorizontal 水平居中;
  • android:layout_centerVertical 垂直居中;
  • android:layout_centerInParent 父控件的中央;

测试代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
    tools:context=".MainActivity" >
	
    <RelativeLayout 
        android:id="@+id/hua"
        android:layout_width="wrap_content"
		android:layout_height="wrap_content"
		android:layout_centerInParent="true"
        android:background="@drawable/hua"
        ></RelativeLayout>

</RelativeLayout>

显示结果界面:
测试结果

安卓中的基础控件

Button:按钮

TextView:文本

EditText:输入框

ImageView:图片

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#ebedec" >

        <TextView
            android:id="@+id/user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户"
            android:textColor="#3d3d3b"
            android:textSize="30dp" />

        <EditText
            android:id="@+id/ed1"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_toRightOf="@id/user" 
            />


        <TextView
            android:id="@+id/passed"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/user"
            android:text="密码"
            android:textColor="#3d3d3b"
            android:textSize="30dp" />

        <EditText
            android:id="@+id/ed2"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_below="@id/ed1"
            android:layout_toRightOf="@id/passed" 
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@id/ed2"
            android:text="确定" 
            />
    </RelativeLayout>

</RelativeLayout>

界面效果:
展示效果

内外边距属性设定

padding
内边距设定

margin
外边距设定

插入图片:

<ImageView 
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/hua"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
	
    <ImageView 
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/hua"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        />
    
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#ebedec" >

        <TextView
            android:id="@+id/user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed1"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_toRightOf="@id/user" 
            />


        <TextView
            android:id="@+id/passed"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/user"
            android:text="密码"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed2"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_below="@id/ed1"
            android:layout_toRightOf="@id/passed" 
            />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_below="@id/ed2"
            android:text="确定" 
            android:padding="30dp"
            />
    </RelativeLayout>

</RelativeLayout>

界面效果:
界面效果

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
	
    <ImageView 
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/hua"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        />
    
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#ebedec" >

        <TextView
            android:id="@+id/user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed1"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_toRightOf="@id/user" 
            />


        <TextView
            android:id="@+id/passed"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/user"
            android:text="密码"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed2"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_below="@id/ed1"
            android:layout_toRightOf="@id/passed" 
            />
        
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@id/ed2"
            android:layout_below="@id/ed2"
            android:text="取消" 
            android:layout_marginLeft="50dp"
            />
        
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/ed2"
            android:layout_alignRight="@id/btn2"
            android:text="确定" 
            android:layout_marginRight="70dp"
            />
    </RelativeLayout>

</RelativeLayout>

界面展示效果:
界面展示效果

按键美化1

activity_main.xml文件内容

添加到控件的属性

android:textColor="#ffffff"
android:background="@drawable/btn_selector"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
	
    <ImageView 
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/hua"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        />
    
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:layout_centerInParent="true"
        android:background="#ebedec" >

        <TextView
            android:id="@+id/user"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="用户"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed1"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_toRightOf="@id/user" 
            />


        <TextView
            android:id="@+id/passed"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/user"
            android:text="密码"
            android:textColor="#3d3d3b"
            android:textSize="20dp" 
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            />

        <EditText
            android:id="@+id/ed2"
            android:layout_width="200dp"
            android:layout_height="40dp"
            android:layout_below="@id/ed1"
            android:layout_toRightOf="@id/passed" 
            />
        
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignRight="@id/ed2"
            android:layout_below="@id/ed2"
            android:text="取消" 
            android:layout_marginLeft="50dp"
            />
        
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/ed2"
            android:layout_alignRight="@id/btn2"
            android:textColor="#ffffff"
            android:background="@drawable/btn_selector"
            android:text="确定" 
            android:layout_marginRight="70dp"
            />
    </RelativeLayout>

</RelativeLayout>

btn_normal.xml文件:控制控件未按下的样式状态

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

    <!-- 圆角的半径 -->
    <corners android:radius="10dp"/>

    <!-- 填充颜色 -->
    <solid android:color="#3a8fea"/>

</shape>

btn_pressed.xml文件:控制控件按下的样式状态

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

    <!-- 圆角的半径 -->
    <corners android:radius="10dp"/>

    <!-- 填充颜色 -->
    <solid android:color="#0662f5"/>

</shape>

btn_selector.xml文件:判断按键的状态,然后去调取控制控件样式对应的控制文件

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

    <!-- 正常状态 -->
    <item android:drawable="@drawable/btn_normal" android:state_pressed="false"/>

    <!-- 按下状态 -->
    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>

</selector>

线性布局LinearLayout

常用属性:

  • orientation:布局中组件的排列方式,有horizontal(水平,默认),vertical(竖直),两种方式
  • gravity:控制组件所包含的子元素的对齐方式,可多个组合,如(left|buttom)
  • layout_gravity:控制该组件在父容器里的对齐方式
  • layout_width:布局的宽度,通常不直接写数字的,用wrap_content(组件实际大小),fill_parent或者match_parent填满父容器
  • layout_height:布局的高度,参数同上
  • id:为组件设置一个资源id,在Java文件中可以通过findViewById(id)找到该组件
  • background:为该组件设置一个背景图片,或者直接使用颜色覆盖

Weight(权重):该属性是用来等比例的划分区域的。

  • 最简单的用法:要等比例划分,分谁,谁为0,weight按比例即可

Divider(分割线):该属性用于为LinearLayout设置分割线图片,通过showDivider来设置分割线所在的位置,有四个可选值none,middle,begining,end;

  • divider:为LinearLayout设置分割线的图片
  • showDivider:设置分割线所在的位置,有四个可选值:none,middle,begining,end
  • dividerPadding:设置分割线的padding

Weight(权重)应用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    
	<LinearLayout 
	    android:layout_width="match_parent"
	    android:layout_height="80dp"
	    android:background="#ff0000"
	    android:layout_centerInParent="true"
	    >
	    <LinearLayout 
	        android:layout_weight="1"
	        android:layout_width="0dp"
	        android:layout_height="80dp"
	        android:background="#00ff00"
	        android:orientation="vertical"
	        >
	        <TextView 
	            android:layout_width="wrap_content"
	            android:layout_height="0dp"
	            android:text="账号"
	            android:layout_weight="1"
	            />
	        <TextView 
	            android:layout_width="wrap_content"
	            android:layout_height="0dp"
	            android:text="密码"
	            android:layout_weight="1"
	            />
	        
	    </LinearLayout>
	    
	    <LinearLayout 
	        android:layout_weight="5"
	        android:layout_width="0dp"
	        android:layout_height="80dp"
	        android:background="#0000ff"
	        android:orientation="vertical"
	        >
	        <EditText 
	            android:layout_width="wrap_content"
	            android:layout_height="0dp"
	            android:layout_weight="1"
	            />
	        <EditText 
	            android:layout_width="wrap_content"
	            android:layout_height="0dp"
	            android:layout_weight="1"
	            />
	        
	    </LinearLayout>
	    
	</LinearLayout>


</RelativeLayout>

界面展示效果:
界面效果

gravity应用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
    
	<LinearLayout 
	    android:layout_width="300dp"
	    android:layout_height="120dp"
	    android:layout_centerInParent="true"
	    >
	    <LinearLayout 
	        android:layout_weight="1"
	        android:layout_width="0dp"
	        android:layout_height="120dp"
	        android:orientation="vertical"
	        >
	        <TextView 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:gravity="center"
	            android:text="账号"
	            android:layout_weight="1"
	            />
	        <TextView 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:gravity="center"
	            android:text="密码"
	            android:layout_weight="1"
	            />
	        <TextView 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:gravity="center"
	            android:text="ID号"
	            android:layout_weight="1"
	            />
	        
	    </LinearLayout>
	    
	    <LinearLayout 
	        android:layout_weight="5"
	        android:layout_width="0dp"
	        android:layout_height="120dp"
	        android:orientation="vertical"
	        >
	        <EditText 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:layout_weight="1"
	            />
	        <EditText 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:layout_weight="1"
	            />
	        <EditText 
	            android:layout_width="match_parent"
	            android:layout_height="0dp"
	            android:layout_weight="1"
	            />
	        
	    </LinearLayout>
	    
	</LinearLayout>


</RelativeLayout>

界面效果:
界面效果


  1. 安卓控件美化 ??

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:26:11  更:2022-03-03 16:30:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 16:44:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码