Android 常用UI组件

灰太狼 2023-06-23 13:24 91阅读 0赞

作者:Bright Xu

文章目录

    • 布局管理器
        1. 线性布局 LinearLayout
        1. 相对布局 RelativeLayout
    • TextView
    • Button

布局管理器

1. 线性布局 LinearLayout

  • 最常用属性






















    android:id android:layout_margin
    android:layout_width android:layout_padding
    android:layout_height android:orientation
    android:background
  • android:id

    创建id

    1. android:id="@+id/ll_1"
  • 宽度和高度(android:layout_width android:layout_height)

    • match_parent

      1. android:layout_width="match_parent"
      2. android:layout_height="match_parent"

      匹配父控件,表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小

    • wrap_content

      1. android:layout_width="wrap_content"
      2. android:layout_height="wrap_content"

      表示让当前的控件大小能够刚好包含里面的内容,也就是由控件内容决定当前控件的大小

    • 固定宽度和高度

      1. android:layout_width="200dp"
      2. android:layout_height="200dp"
      • 单位通常使用dp,字体单位通常使用sp
  • android:orientation 布局方向

    • vertical 竖直方向

      1. android:orientation="vertical"
    • horizontal 水平方向

      1. android:orientation="horizontal"
    • 默认水平方向
  • android:background 背景颜色

    1. android:background="#ff0033"
  • android:layout_padding 内边距

    • android:paddingTop
    • android:paddingLeft
    • android:paddingBottom
    • android:paddingRight
  • android:layout_margin 外边距

    • android:layout_marginTop
    • android:layout_marginLeft
    • android:layout_marginBottom
    • android:layout_marginRight
  • android:layout_weight

    • 设置权重

      1. android:layout_weight="1"

      把剩余内容按权重平分

  • layout_gravity

    • 内部元素对齐方式
    • layout_gravity 是LinearLayout 子元素的特有属性。对于layout_gravity, 该属性用于设置控件相对于容器的对齐方式,可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
    • 这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。本属性是android:layout_gravity属性,与 android:gravity 属同。android:gravity是LinearLayout的特有属性。android:layout_gravity是LinearLayout 子元素的特有属性,不要混淆了。

RGB网页颜色在线取色器

2. 相对布局 RelativeLayout

  • 最常用属性






















    android:layout_toLeftOf android:layout_toStartOf
    android:layout_toRightOf android:layout_toEndOf
    android:layout_alignBottom android:layout_below
    android:layout_alignParentBottom … …
  • 对齐

    • 默认靠左上角对齐

      下面是将控件与view_2控件的下边缘对齐

      1. android:layout_below="@id/view_2"
    • android:layout_alignParentBottom 靠父控件下边缘对齐

      1. android:layout_alignParentBottom="true"
    • android:layout_alignParentRight 靠父控件右边缘对齐

      1. android:layout_alignParentRight="true"

TextView

  • 文字大小、颜色

    1. android:text="@string/tv_text1"
    2. android:textColor="#f00"
    3. android:textSize="24sp"
  • 显示不下时,使用…

    1. android:layout_width="100dp"
    2. android:maxLines="1"
    3. android:ellipsize="end"
  • 文字+icon

    1. android:drawableRight="@drawable/tuanzi04"

    在文字的右边放置了一个图片tuanzi04.png

  • 中划线

    1. // com.bright.helloworld.TextViewActivity.java
    2. package com.bright.helloworld;
    3. import androidx.appcompat.app.AppCompatActivity;
    4. import android.graphics.Paint;
    5. import android.os.Bundle;
    6. import android.widget.TextView;
    7. public class TextViewActivity extends AppCompatActivity {
    8. private TextView mTv4;
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState) {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_text_view);
    13. mTv4 = findViewById(R.id.tv_4);
    14. mTv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); // 中划线
    15. mTv4.getPaint().setAntiAlias(true); // 去除锯齿
    16. }
    17. }
    18. <!-- layout/activity_text_view.xml -->
    19. <TextView android:id="@+id/tv_4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你好,世界!!!" android:textColor="#f00" android:textSize="24sp" android:layout_marginTop="10dp"/>
  • 下划线

    方式1:

    1. // com.bright.helloworld.TextViewActivity.java
    2. package com.bright.helloworld;
    3. import androidx.appcompat.app.AppCompatActivity;
    4. import android.graphics.Paint;
    5. import android.os.Bundle;
    6. import android.widget.TextView;
    7. public class TextViewActivity extends AppCompatActivity {
    8. private TextView mTv5;
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState) {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_text_view);
    13. mTv5 = findViewById(R.id.tv_5);
    14. mTv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG); // 下划线
    15. }
    16. }

    方式2:

    1. // com.bright.helloworld.TextViewActivity.java
    2. package com.bright.helloworld;
    3. import androidx.appcompat.app.AppCompatActivity;
    4. import android.graphics.Paint;
    5. import android.os.Bundle;
    6. import android.widget.TextView;
    7. public class TextViewActivity extends AppCompatActivity {
    8. private TextView mTv6;
    9. @Override
    10. protected void onCreate(Bundle savedInstanceState) {
    11. super.onCreate(savedInstanceState);
    12. setContentView(R.layout.activity_text_view);
    13. mTv6 = findViewById(R.id.tv_6);
    14. mTv6.setText(Html.fromHtml("<u>你好,世界!!!</u>")); // 下划线2
    15. }
    16. }
    17. <!-- layout/activity_text_view.xml -->
    18. <TextView android:id="@+id/tv_6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" android:textColor="#f00" android:textSize="24sp" android:layout_marginTop="10dp"/>
  • 跑马灯

    1. <!-- layout/activity_text_view.xml -->
    2. <TextView android:id="@+id/tv_7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你好,世界!!!你好,世界!!!你好,世界!!!你好,世界!!!你好,世界!!!你好,世界!!!你好,世界!!!你好,世界!!!" android:textColor="#f00" android:textSize="24sp" android:layout_marginTop="10dp" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true"/>

Button

  • 文字大小、颜色

    1. <!-- layout/activity_button.xml -->
    2. <Button android:id="@+id/btn_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="按钮1" android:textSize="20sp" android:textColor="#eee" android:background="#999"/>
  • 自定义背景形状
  • 自定义按压效果
  • 点击事件

发表评论

表情:
评论列表 (有 0 条评论,91人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Android UI

    基本组件: 1. 文本类组件 2. 按钮类组件 3. 日期时间类组件 一、文本框组件 文本框文字默认自动换行显示,若不想让其换行,可使用android:sing

    相关 微信小程序UI

    开发微信小程序的过程中,选择一款好用的组件库,可以达到事半功倍的效果。自从微信小程序面世以来,不断有一些开源组件库出来,下面5款就是排名比较靠前,用户使用量与关注度比较高的小程