Android UI控件詳細解析(四)

1.UI控件

1.1 TextView控件

常用屬性
屬性含義
id給當前控件定義了一個唯 一標識符
layout_width高度,單位:dp (wrap_content, match_parent)
layout_height寬度,單位:dp (wrap_content, match_parent)
background設置背景圖片
text指定控件中顯示的文本內容
gravity來指定文字的對齊方式(top 、bottom 、left 、right 、center)
textSize指定控件中文字的大小
textColor指定控件中文字的顏色(#000000~#FFFFFF)
textStyle指定控件中文字的樣式
帶陰影的TextView)(Drawable資源文件使用)
屬性含義
shadowColor設置陰影顏色,需要與shadowRadius一起使用
shadowRadius設置陰影的模糊程度,設為0.1就變成字體顏色(建議為3.0)
shadowDx設置陰影在水平方向的偏移,就是水平方向陰影開始的橫坐標位置
shadowDy設置陰影在水平方向的偏移,就是水平方向陰影開始的橫坐標位置
帶邊框的TextView(Drawable資源文件使用)

通過設置邊框的Drawable文件,然后通過TextView的background調用來實現有邊框的調用

<!--示例說明-->
<TextViewandroid:background="@drawable/txt_rectborder"/>
帶圖片的TextView(Drawable資源文件使用)

設置圖片的核心其實就是Drawable資源文件,它可以設置四個方向的圖片: drawableTop(上)、drawableButtom(下)、drawableLeft(左)、drawableRight(右) 另外,你也可以使用drawablePadding來設置圖片與文字間的間距!

1.2 EditText控件

常用屬性
屬性含義
hint默認提示文本
textColor設置文本顏色(#000000~#FFFFFF)
height設置控件高度
width設置控件寬度
textStyle設置字體樣式(粗體、斜體)
selectAllOnFocus獲取焦點后全選組件內所有文本內容
限制EditText輸入類型
屬性含義
inputTypephone(撥號鍵盤)date(日期鍵盤)time(時間鍵盤)
設置最小行、最多行、單行、多行、自動換行
屬性含義
singleLine設置只允許單行輸入,而且不會滾動
minLines設置最小行數
maxLines設置最大行數
textScaleX設置字與字的水平間隔
textScaleY設置字與字的垂直間隔
capitalize設置英文字母大寫(sentences【第一個字母大寫】、word【每一個單詞首字母大寫,以空格區分單詞】、characters【每一個英文字母都大寫】)
設置內邊距
屬性含義
marginTop上邊距
marginBottom下邊距
marginRight右邊距
marginLeft左邊距

1.3 Button按鈕與ImageView圖像按鈕

常用屬性
屬性描述
drawable放一個drawable資源
drawableTop可拉伸要繪制的文本的上面
drawableBottom可拉伸要繪制的文本的下面
drawableLeft可拉伸要繪制的文本的左面
drawableRight可拉伸要繪制的文本的右面
text設置顯示文本
textColor設置顯示文本顏色
textSize設置顯示文本大小
background可拉伸使用的背景
onclick設置點擊事件(不常用)
Button的狀態屬性
屬性描述
stated_pressed是否按下,如一個按鈕觸摸或者點擊
state_focused是否取得焦點,比如用戶選擇了一個文本框
state_hovered光標是否懸停,通常與focused state相同
state_selected被選中狀態
state_checkable組件是否能被check。如:RadioButton是可以被check的
state_checked被checked了,如:一個RadioButton可以被check了的
state_enabled能夠接受觸摸或者點擊事件
state_activated被激活
state_window_focused應用程序是否在前臺,當有通知欄被拉下來或者一個對話框彈出的時候應用程序就不在前臺了

1.4 ImageView控件的src屬性和background屬性的區別

  1. background通常指的都是背景,而src指的是內容!!
  2. 當使用src填入圖片時,是按照圖片大小直接填充,并不會進行拉伸;使用background填入圖片,則是會根據ImageView給的值進行拉伸。

1.5 RadioButton控件(單選按鈕)和CheckBox控件(多選按鈕)

示例說明
<RadioGroupandroid:id="@+id/radioGroup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/btnMan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""android:checked="true"/><RadioButtonandroid:id="@+id/btnWoman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text=""/>
</RadioGroup><CheckBoxandroid:id="@+id/cb_one"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="香蕉"/>
<CheckBoxandroid:id="@+id/cb_two"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="蘋果"/>
<CheckBoxandroid:id="@+id/cb_three"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="菠蘿"/>

1.6 ToggleButton控件(開關按鈕)Switch控件(開關)

ToggleButton常用屬性
屬性描述
disabledAlpha設置按鈕在禁用時的透明度
textOff按鈕沒有被選中時顯示的文字
textOn按鈕被選中時顯示的文字
Switch常用屬性
屬性描述
showText設置on/off的時候是否顯示文字(true / false)
splitTrack是否設置一個間隙,讓滑塊與底部圖片分隔(true / false)
switchMinWidth設置開關的最小寬度
switchPadding設置滑塊內文字的間隔
switchTextAppearance設置開關的文字外觀(用得少)
textOff按鈕沒有被選中時顯示的文字
textOn按鈕被選中時顯示的文字
textStyle文字風格,粗體,斜體寫劃線那些
track底部的圖片
thumb滑塊的圖片
typeface設置字體(sans, serif, monospace)
自定義字體文件:
1. 將字體文件保存在assets/fonts/目錄下
2. 在Java代碼中設置: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);
示例說明
<ToggleButtonandroid:id="@+id/tbtn_open"android:layout_width="wrap_content"android:layout_height="wrap_content"android:checked="true"android:textOff="關閉聲音"android:textOn="打開聲音" /><Switchandroid:id="@+id/swh_status"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textOff=""android:textOn=""android:thumb="@drawable/thumb_selctor"android:track="@drawable/track_selctor" />

1.7 ProgressBar控件

基本用法
屬性描述
max進度條最大值
style設置進度條的樣式:環形或者水平進度條(Horizontal)
progress進度條已完成進度值
progressDrawable設置軌道對應的Drawable對象
indeterminate如果設置成true,則進度條不精確顯示進度
indeterminateDrawable設置不顯示進度的進度條的Drawable對象
indeterminateDuration設置不精確顯示進度的持續時間
secondaryProgress二級進度條,類似于視頻播放的一條是當前播放進度,一條是緩沖進度,前者通過progress屬性進行設置

1.8 SeekBar控件

基本用法
屬性描述
max滑動條的最大值
progress滑動條的當前值
secondaryProgress二級滑動條的進度
thumb滑塊的drawable

1.9 RatingBar控件

基本用法
屬性描述
isIndicator是否用作指示,用戶無法更改,默認false
numStars顯示多少個星星,必須為整數
rating默認評分值,必須為浮點數
stepSize評分每次增加的值,必須為浮點數
style樣式選擇

2. 布局

Android中有六大布局,分別是:LinearLayout(線性布局),RelativeLayout(相對布局),TableLayout(表格布局) FrameLayout(幀布局),AbsoluteLayout(絕對布局),GridLayout(網格布局)

2.1 線性布局管理(LinearLayout)

屬性含義
layout_height高度,單位:dp (wrap_content, match_parent)
layout_weight寬度,單位:dp (wrap_content, match_parent)
orietation方向(vertical,horizontal)
gravity對齊方式(left, right, center, top, bottom…)
background背景(顏色[color]、圖片[drawable]、選擇器[selector])
padding內邊距 (paddingLeft, paddingRight, paddingTop, paddingBottom)
margin外邊距 (marginLeft, marginRight, marginTop, marginBottom)
layout_gravity本元素相對于父元素的重力方向
orientation本元素所有子元素的重力方向

權重

屬性含義
weight比重

分割線

屬性含義
divider為LinearLayout設置分割線圖片
showDividers設置分割線所在位置
dividerPadding設置分割線的Padding

2.2 相對布局管理(RelativeLayout)

基本屬性

屬性描述
gravity設置讓其內組件的對齊方式
ignoreGravity設置了該屬性為true的屬性的組件,將不受gravity屬性的影響

根據父容器定位

屬性描述
layout_alignParentLeft左對齊
layout_alignParentRight右對齊
layout_alignParentTop頂部對齊
layout_alignParentBottom底部對齊
layout_centerHorizontal水平居中
layout_centerVertical垂直居中
layout_centerInParent中間位置

根據兄弟組件定位

屬性描述
layout_toLeftOf參考組件的左邊
layout_toRightOf參考組件的右邊
layout_above參考組件的上方
layout_below參考組件的下方
layout_alignTop對其參考組件的上邊界
layout_alignBottom對其參考組件的下邊界
layout_alignLeft對其參考組件的左邊界
layout_alignRight對其參考組件的右邊界

偏移量(設置組件與父容器的邊距)

屬性描述
layout_margin設置組件愛你上下左右的偏移量
layout_marginLeft設置組件離左邊的偏移量
layout_marginRight設置組件離右邊的偏移量
layout_marginTop設置組件離上面的偏移量
layout_marginBottom設置組件離下面的偏移量

填充(設置組件中內部元素間的邊距)

屬性描述
padding往內部元素的上下左右填充一定的邊距
paddingLeft往內部元素的左邊填充一定的邊距
paddingRight往內部元素的右邊填充一定的邊距
paddingTop往內部元素的上面填充一定的邊距
paddingBottom往內部元素的下面填充一定的邊距

2.3 表格布局管理(TableLayout)

常用屬性

屬性描述
collapseColumns設置需要被隱藏的列的序列號
shrinkColumns設置允許被收縮的列的列序號
stretchColumns設置運行被拉伸的列的列序號

示例說明

隱藏列

<TableLayout  android:id="@+id/TableLayout2"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:collapseColumns="0,2" >  <TableRow>  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="one" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="two" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="three" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="four" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="five" />  </TableRow>  
</TableLayout>

拉伸列

<TableLayout    android:id="@+id/TableLayout2"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:stretchColumns="1" >    <TableRow>    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="one" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="two" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="three" />    <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="four" />                 </TableRow>    
</TableLayout>  

收縮列

<TableLayout  android:id="@+id/TableLayout2"  android:layout_width="fill_parent"  android:layout_height="wrap_content"  android:shrinkColumns="1" >  <TableRow>  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="one" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="two" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="three" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="four" />  <Button  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="five" />  <TextView  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="文本XX" />  </TableRow>  
</TableLayout>

2.4 幀布局管理(FrameLayout)

常用屬性

屬性描述
foreground設置改幀布局容器的前景圖像
foregroundGravity設置前景圖像顯示的位置
// 簡單的幀布局使用
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/FrameLayout1"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"     android:foreground="@drawable/logo"    android:foregroundGravity="right|bottom">    <TextView    android:layout_width="200dp"    android:layout_height="200dp"    android:background="#FF6143" />    <TextView    android:layout_width="150dp"    android:layout_height="150dp"    android:background="#7BFE00" />    <TextView    android:layout_width="100dp"    android:layout_height="100dp"    android:background="#FFFF00" />    </FrameLayout>    

2.5 網格布局管理(GridLayout)

設置排列對齊

屬性描述
orientation設置排列方式
layout_gravity設置對其方式

設置幾行幾列

屬性描述
rowCount設置行數
columnCount設置列數

設置組件所在的行列

屬性描述
layout_row第幾行,0起
layout_column第幾列,0起

設置組件橫跨幾行幾列

屬性描述
rowSpan縱向跨行數
column橫向跨行數

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19693.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19693.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19693.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django學習一:創建Django框架,介紹Django的項目結構和開發邏輯。創建應用,編寫主包和應用中的helloworld

文章目錄 前言一、Django環境配置1、python 環境2、Django環境3、mysql環境4、IDE&#xff1a;pycharm 二、第一次創建Django項目1、創建項目door_web_django_system2、運行啟動 三、Django項目介紹1、介紹Django項目結構2、第一個helloword4、django的項目邏輯&#xff08;和j…

React + Taro 項目 實際書寫 感受

之前我總結了部分react 基礎 根據官網的內容 以及Taro 框架的內容 今天我試著開始寫了一下頁面和開發 說一下我的感受 我之前寫的是vue3 今天是第一次真正根據需求做頁面開發 和邏輯功能 代碼的書寫 主體就是開發了這個頁面 雖說這個頁面 很簡單 但是如果你要是第一次寫 難說…

CATIA入門操作案例——壓縮彈簧繪制,螺旋線的使用,法則曲線應用

目錄 引出畫壓縮彈簧畫等距部分畫兩端的壓縮部分曲線縫合和掃掠封閉曲面得實體 總結異形彈簧新建幾何體草圖編輯&#xff0c;畫一條樣條線進行掃掠&#xff0c;圓心和半徑畫出曲面上的螺旋線再次選擇掃掠&#xff0c;圓心和半徑 其他自定義信號和槽1.自定義信號2.自定義槽3.建立…

Aigtek功率放大器的主要性能要求有哪些

功率放大器是電子系統中的重要組件&#xff0c;用于將低功率信號放大到高功率水平。功率放大器的性能直接影響到信號的放大質量和系統的整體性能。下面西安安泰將介紹功率放大器的主要性能要求。 增益&#xff1a;功率放大器應當具有足夠的增益&#xff0c;即將輸入信號的幅度放…

【仿真建模-anylogic】指定服務端口

Author&#xff1a;趙志乾 Date&#xff1a;2024-05-31 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 問題&#xff1a;anylogic動畫模型可以在瀏覽器中進行展示&#xff0c;且訪問端口在模型啟動時隨機生成&#xff1b;為了將其動畫頁面嵌…

讀取YUV數據到AVFrame并用多線程控制幀率

文件樹&#xff1a; 1.xvideo_view.h class XVideoView { public:// 像素格式枚舉enum Format { RGBA 0, ARGB, YUV420P };// 渲染類型枚舉enum RenderType { SDL 0 };// 創建渲染對象的靜態方法static XVideoView* Create(RenderType type SDL);// 繪制幀的方法bool DrawF…

影響生產RAG流水線5大瓶頸

檢索增強生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09;已成為基于大型語言模型的生成式人工智能應用的關鍵組成部分。其主要目標是通過將通用語言模型與外部信息檢索系統集成&#xff0c;增強通用語言模型的能力。這種混合方法旨在解決傳統語言模…

無法刪除dll文件

碰到xxxxxx.dll文件無法刪除不要慌&#xff01; 通過Tasklist /m dll文件名稱 去查看它和哪個系統文件綁定運行&#xff0c;發現是explorer.exe。 我們如果直接通過del命令【當然需要在該dll文件所在的路徑中】。發現拒絕訪問 我們需要在任務管理器中&#xff0c;將資源管理器…

如何處理網安發出的網絡安全監督檢查限期整改通知

近期&#xff0c;很多客戶都收到了網安發出的限期整改通知。大家都比較關心的問題是&#xff0c;如何應對處理這些限期整改通知。后續是否有其他的影響&#xff0c;需要如何做進一步的優化整改和調整。今天就這些問題給大家做一些分享。 一. 為什么會有網安的網絡安全檢查 主…

大多數JAVA程序員都干不到35歲嗎?

在開始前剛好我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「 Java的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“888”之后私信回復“888”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01;不少人認為的程序員吃青春飯…

邊緣計算:推動智能時代的前沿技術

邊緣計算:推動智能時代的前沿技術 引言 隨著物聯網(IoT)、5G通信和人工智能(AI)技術的迅猛發展,邊緣計算(Edge Computing)成為現代計算架構中的一個重要組成部分。邊緣計算通過將數據處理和存儲移至網絡邊緣,靠近數據生成源頭,從而顯著提高響應速度、降低延遲和帶寬…

項目VS運營

一、項目與運營的定義與區別 項目與運營是企業管理中的兩個重要概念&#xff0c;盡管在實際運作中它們常被視為同義詞&#xff0c;但它們之間存在明顯的區別。 項目&#xff0c;指的是為達到特定目標&#xff0c;通過臨時性、系統性、有計劃的組織、協調、控制等系列活動&…

基于深度學習的端到端語音識別時代

隨著深度學習的發展&#xff0c;語音識別由DNN-HMM時代發展到基于深度學習的“端到端”時代&#xff0c;這個時代的主要特征是代價函數發生了變化&#xff0c;但基本的模型結構并沒有太大變化。總體來說&#xff0c;端到端技術解決了輸入序列長度遠大于輸出序列長度的問題。 采…

Visual Studio中調試信息格式參數:/Z7、/Zi、/ZI參數

一般的調試信息都保存在pdb文件中。 Z7參數表示這些調試信息保存到OBJ目標文件中&#xff0c;這樣的好處是不需要單獨分發PDB文件給下游。Zi就是把所有的調試信息都保存在pdb文件中&#xff0c;以縮小發布文件的大小。ZI和Zi類似&#xff0c;但是增加了熱重載的能力&#xff1…

Django admin后臺創建密文密碼

Django admin后臺創建密文密碼 如題現在有一張用戶表User # user/models.py from django.db import models from django.contrib.auth.models import AbstractUserclass User(AbstractUser):SEX_CHOICES [(0, 男),(1, 女),]sex models.IntegerField(choicesSEX_CHOICES, de…

數據結構:詳解二叉樹(樹,二叉樹順序結構,堆的實現與應用,二叉樹鏈式結構,鏈式二叉樹的4種遍歷方式)

目錄 1.樹的概念和結構 1.1樹的概念 1.2樹的相關概念 1.3樹的代碼表示 2.二叉樹的概念及結構 2.1二叉樹的概念 2.2特殊的二叉樹 2.3二叉樹的存儲結構 2.3.1順序存儲 2.3.2鏈式存儲 3.二叉樹的順序結構和實現 3.1二叉樹的順序結構 3.2堆的概念和結構 3.3堆的特點 3…

k-means聚類算法

在Python中&#xff0c;可以使用scikit-learn庫來實現k-means聚類算法。scikit-learn是一個強大的機器學習庫&#xff0c;提供了許多算法的實現&#xff0c;包括k-means聚類。 以下是使用scikit-learn實現k-means聚類的基本步驟&#xff1a; 安裝scikit-learn&#xff1a; 如果…

一文掌握JavaScript 中類的用法

文章導讀&#xff1a;AI 輔助學習前端&#xff0c;包含入門、進階、高級部分前端系列內容&#xff0c;當前是 JavaScript 的部分&#xff0c;瑤琴會持續更新&#xff0c;適合零基礎的朋友&#xff0c;已有前端工作經驗的可以不看&#xff0c;也可以當作基礎知識回顧。 這篇文章…

SQL常用語句--模糊查詢LIKE

like模糊查詢&#xff0c;支持%和下劃線匹配&#xff0c;%匹配多個字符&#xff0c;_下劃線&#xff1a;任意一個字符&#xff0c;示例&#xff1a; 1&#xff09;查詢名字中含有張的學生信息 select * from student where sname like ‘%張%’&#xff1b; 2&#xff09;查…

MySQL統計字符長度:CHAR_LENGTH(str)

對于SQL表&#xff0c;用于計算字符串中字符數的最佳函數是 CHAR_LENGTH(str)&#xff0c;它返回字符串 str 的長度。 另一個常用的函數 LENGTH(str) 在這個問題中也適用&#xff0c;因為列 content 只包含英文字符&#xff0c;沒有特殊字符。否則&#xff0c;LENGTH() 可能會返…