老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

android行高,android行高設(shè)置

android布局控件之LinearLayout詳解

Android布局控件之LinearLayout詳解

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間網(wǎng)站運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、蒙自網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

LinearLayout是線性布局控件,它包含的子控件將以橫向或豎向的方式排列,按照相對(duì)位置來排列所有的widgets或者其他的containers,超過邊界時(shí),某些控件將缺失或消失。因此一個(gè)垂直列表的每一行只會(huì)有一個(gè)widget或者是container,而不管他們有多寬,而一個(gè)水平列表將會(huì)只有一個(gè)行高(高度為最高子控件的高度加上邊框高度)。LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對(duì)齊(相對(duì)一個(gè)控件的右對(duì)齊、中間對(duì)齊或者左對(duì)齊)。

xml屬性

android:baselineAligned:是否允許用戶調(diào)整它內(nèi)容的基線。

android:baselineAlignedChildIndex:當(dāng)一個(gè)線性布局與另一個(gè)布局是按基線對(duì)齊的一部分,它可以指定其內(nèi)容的基線對(duì)齊方式。

android:gravity:指定如何在該對(duì)象中放置此對(duì)象的內(nèi)容(x/y坐標(biāo)值)。

android:orientation:設(shè)置它內(nèi)容的對(duì)其方向(橫向/豎向)。

gravity 這個(gè)英文單詞是重心的意思,在這里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的區(qū)別

從名字上可以看到,android:gravity是對(duì)元素本身說的,元素本身的文本顯示在什么地方靠著換個(gè)屬性設(shè)置,不過不設(shè)置默認(rèn)是在左側(cè)的。

android:layout_gravity是相對(duì)與它的父元素說的,說明元素顯示在父元素的什么位置。

比如說button:android:layout_gravity 表示按鈕在界面上的位置。 android:gravity表示button上的字在button上的位置。

可選值

這兩個(gè)屬性可選的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

而且這些屬性是可以多選的,用“|”分開。

默認(rèn)這個(gè)的值是:Gravity.LEFT

LinearLayout還支持為其包含的widget或者是container指定填充權(quán)值。好處就是允許其包含的widget或者是container可以填充屏幕上的剩余空間。這也避免了在一個(gè)大屏幕中,一串widgets或者是containers擠成一堆的情況,而是允許他們放大填充空白。剩余的空間會(huì)按這些widgets或者是containers指定的權(quán)值比例分配屏幕。默認(rèn)的 weight 值為0,表示按照widgets或者是containers實(shí)際大小來顯示,若高于0的值,則將Container剩余可用空間分割,分割大小具體取決于每一個(gè)widget或者是container的layout_weight及該權(quán)值在所有widgets或者是containers中的比例。例如,如果有三個(gè)文本框,其中兩個(gè)指定的權(quán)值為1,那么,這兩個(gè)文本框?qū)⒌缺壤胤糯螅⑻顫M剩余的空間,而第三個(gè)文本框不會(huì)放大,按實(shí)際大小來顯示。如果前兩個(gè)文本框的取值一個(gè)為2,一個(gè)為1,顯示第三個(gè)文本框后剩余的空間的2/3給權(quán)值為2的,1/3大小給權(quán)值為1的。也就是權(quán)值越大,重要度越大。

如果LinearLayout包含子LinearLayout,子LinearLayout之間的權(quán)值越大的,重要度則越小。如果有LinearLayout A包含LinearLayout C,D,C的權(quán)值為2,D的權(quán)值為1,則屏幕的2/3空間分給權(quán)值為1的D,1/3分給權(quán)值為2的C。在LinearLayout嵌套的情況下,子LinearLayout必須要設(shè)置權(quán)值,否則默認(rèn)的情況是未設(shè)置權(quán)值的子LinearLayout占據(jù)整個(gè)屏幕

怎么調(diào)整Android listview的高度

您好,我來為您解答:

Android主要針對(duì)觸摸屏,所以默認(rèn)的行高相當(dāng)比較到,主要目的是為了使得觸摸每一項(xiàng)時(shí)能夠觸摸到。

自定義Adapter,然后在getview方法中設(shè)置ListItem的布局,這樣可以設(shè)置ListView每一個(gè)Item的高度~

如果我的回答沒能幫助您,請(qǐng)繼續(xù)追問。

android如何改變listview的每行高度

不知道題主的listview單項(xiàng)布局用的是自定義的還是系統(tǒng)的,如果是系統(tǒng)的那就改變不了,系統(tǒng)自帶的布局就是類似simple_item這樣的,在使用適配器adapter的時(shí)候也是new SimpleAdapter 這樣。

如果自定義一個(gè)listview , 那在單項(xiàng)布局里就可以直接設(shè)置它的高度,layout_height="70dp" 。自定義listview的使用需要自己寫一個(gè)list_item單項(xiàng)布局和相對(duì)應(yīng)的adapter 。

android ExpandableListView怎么設(shè)置行高

您好,很高興為您解答:

設(shè)置最低的高度,方法如下:

AbsListView.LayoutParams lp = new AbsListView.LayoutParams(

ViewGroup.LayoutParams.FILL_PARENT, 50);

view.setLayoutParams(lp);

如果我的回答沒能幫助您,請(qǐng)繼續(xù)追問。

探索 Android 中的 Span

在 Android 中,使用 Span 定義文本的樣式. 通過 Span 改變幾個(gè)文字的顏色,讓它們可點(diǎn)擊,放縮文字的大小甚至是繪制自定義的項(xiàng)目符號(hào)點(diǎn)(bullet points,國外人名中名字之間的間隔符號(hào) · ,HTML 中無序列表項(xiàng)的默認(rèn)符號(hào))。Span 能夠改變 TextPaint 屬性,在 Canvas 上繪制,甚至是改變文本的布局和影響像行高這樣的元素。Span 是可以附加到文本或者從本文分離的標(biāo)記對(duì)象(markup objects);它們可以被應(yīng)用到部分或整段的文本中。

讓我們來看看Span如何使用、提供了哪些開箱即用的功能、怎樣簡單地創(chuàng)建我們自己的 Span 以及如何使用和測試它們。

Styling text in Android

Creating custom spans

Testing custom spans implementation

Testing spans usage

Android 提供了幾種定義文本樣式的方法:

單一樣式 使用 XML 屬性或者 樣式和主題 引入了 TextView 的所有內(nèi)容的樣式。這種方式實(shí)現(xiàn)簡單,通過 XML 即可實(shí)現(xiàn),但是并不能只定義部分內(nèi)容的樣式。舉個(gè)例子,通過設(shè)置 textStyle=”bold” ,所有的文本都會(huì)變?yōu)楹隗w;你不能只定義特定的幾個(gè)字符為黑體。

多重樣式 引入了給一段文本添加多種樣式的功能。例如,一個(gè)單詞斜體而另一個(gè)粗體。多重樣式可以通過使用 HTML 標(biāo)簽、 Span 或者是在 Canvas 上處理自定義的文本繪制。

左圖:單一樣式文本。設(shè)置了 textSize=”32sp” 和 textStyle=”bold” 的 TextView 。右圖:多重樣式文本。設(shè)置了 ForegroundColorSpan, StyleSpan(ITALIC), ScaleXSpan(1.5f), StrikethroughSpan 的文本。

HTML 標(biāo)簽 是解決簡單問題的簡單辦法,例如使文本加粗、斜體,甚至是顯示項(xiàng)目符號(hào)點(diǎn)。為了展示含有 HTML 標(biāo)簽的文本,使用 Html.fromHtml 方法。在內(nèi)部實(shí)現(xiàn)時(shí),HTML 標(biāo)簽被轉(zhuǎn)換成了 span 。但是請(qǐng)注意, Html 類并不支持完整的 HTML 標(biāo)簽和 CSS 樣式,例如將小黑點(diǎn)改為其他的顏色。

當(dāng)你有文本樣式的需求,但是 Android 平臺(tái)默認(rèn)不支持時(shí),你還可以手動(dòng)地在 Canvas 上繪制文本,例如讓文字彎曲排布。

Span 允許你實(shí)現(xiàn)具有更細(xì)粒度自定義的多重樣式文本。舉個(gè)例子,通過 BulletSpan ,你可以定義你的段落文本擁有項(xiàng)目符號(hào)點(diǎn)。你可以定制文本和點(diǎn)號(hào)之間的間距和點(diǎn)號(hào)的顏色。從 Android P 開始,你甚至可以 設(shè)置點(diǎn)號(hào)的半徑 。你也可以創(chuàng)建 span 的自定義實(shí)現(xiàn)。在文章中查看 “創(chuàng)建自定義 span” 部分可以找到如何實(shí)現(xiàn)。

左圖:使用 HTML 標(biāo)簽;中圖:使用 BulletSpan,默認(rèn)圓點(diǎn)大小;右圖:在 Android P 上使用 BulletSpan 或者自定義實(shí)現(xiàn)。

你可以組合使用單一樣式和多重樣式。你可以考慮將設(shè)置給 TextView 的樣式作為一種“基本”樣式,而 span 文本樣式是應(yīng)用在基本樣式“之上”并且會(huì)覆蓋基本樣式的樣式。例如,當(dāng)給一個(gè) TextView 設(shè)置了 textColor=”@color.blue” 屬性且給頭4個(gè)字符應(yīng)用了 ForegroundColorSpan(Color.PINK) ,則頭4個(gè)字符會(huì)使用 span 設(shè)置的粉色,而其他文本使用 TextView 屬性設(shè)置的顏色。

TextView 組合使用 XML 屬性和 span 樣式

當(dāng)使用 span 時(shí),你會(huì)和以下類的其中之一打交道: SpannedString , SpannableString 或 SpannableStringBuilder 。 它們之間的區(qū)別在于文本或標(biāo)記對(duì)象是可改變的還是不可改變的以及它們使用的內(nèi)部結(jié)構(gòu): SpannedString 和 SpannableString 使用線性數(shù)組記錄已添加的 span,而 SpannableStringBuilder 使用 區(qū)間樹 。

下面是如何決定使用哪一個(gè)的方法:

舉個(gè)例子,你用到的文本并不會(huì)改變,但你想要附加 span 時(shí),你應(yīng)該使用 SpannableString 。

上面所有的這些類都繼承自 Spanned 接口,但擁有可變標(biāo)記的類( SpannableString 和 SpannableStringBuilder ) 同時(shí)也繼承自 Spannable 。

Spanned -- 帶有不可變標(biāo)記的不可變文本

Spannable (繼承自 Spanned) -- 帶有可變標(biāo)記的不可變文本

通過 Spannable 對(duì)象調(diào)用 setSpan(Object what, int start, int end, int flags) 方法應(yīng)用 span。 What 對(duì)象是一個(gè)標(biāo)記,應(yīng)用于從開始到結(jié)束的索引之間的文本。falg 標(biāo)志位標(biāo)記了 span 是否應(yīng)該擴(kuò)展至包含插入文本的開始和結(jié)束的點(diǎn)。任何標(biāo)志位設(shè)置以后,只要插入文本的位置位于開始位置和結(jié)束位置之間,span 就會(huì)自動(dòng)的擴(kuò)展。

舉個(gè)例子,設(shè)置 ForegroundColorSpan 可以像下面這樣完成:

因?yàn)?span 設(shè)置時(shí)使用了 SPAN_EXCLUSIVE_INCLUSIVE 標(biāo)志位,在 span 的后面插入文本時(shí),新插入的文本也會(huì)自動(dòng)地繼承此 span。

左圖:帶有 ForegroundColorSpan 的文本;右圖:帶有 ForegroundColorSpan 和 Spannable.SPAN_EXCLUSIVE_INCLUSIVE 的文本。

如果 span 設(shè)置了 Spannable.SPAN_EXCLUSIVE_EXCLUSIVE 標(biāo)志位,在 span 后面插入文本時(shí)則不會(huì)修改 span 的結(jié)束索引。

多個(gè) span 可以被組合且同時(shí)附加到同一段文本上。例如,粗體紅色的文本可以像這樣構(gòu)建:

帶有多種 span 的文本:ForegroundColorSpan(Color.RED) 和 StyleSpan(BOLD)

Android framework 定義了幾個(gè)接口和抽象類,它們會(huì)在測量和渲染時(shí)被檢查。這些類有允許 span 訪問像 TextPaint 或 Canvas 對(duì)象的方法。

Android framework 在 android.text.style 包、主要接口的字類和抽象類中提供了20+的 span, 我們可以通過下面幾個(gè)方式對(duì) span 進(jìn)行分類:

span 類別:字符對(duì)比段落,外形對(duì)比大小

第一種類型以修改外形的方式在字符級(jí)別起作用:文本或背景顏色、下劃線、中橫線等等,它會(huì)觸發(fā)文本重新繪制但是并不會(huì)重新布局。這些 span 引入了 UpdateAppearance 且繼承自 CharacterStyle . CharacterStyle 字類通過提供更新 TextPaint 的訪問方法,定義了怎樣繪制文本。

影響外形的 span

影響尺寸 的 span 更改了文本的尺寸和布局,因此觀察 span 的變化的對(duì)象會(huì)重新繪制文本以保證布局和渲染的正確。

舉個(gè)例子,影響文本字體大小的 span 要求重新測量和布局,也要求重新繪制。這種 span 通常繼承自 MetricAffectingSpan 類。這個(gè)抽象類通過提供對(duì) TextPaint 的訪問,允許字類定義 span 如何影響文本測量,而 MetricAffectingSpan 繼承自 CharacterSpan ,子類在字符級(jí)別影響文本的外形。

影響尺寸的 span

你可能會(huì)想要一直重新創(chuàng)建帶有文本和標(biāo)記的 CharSequence 并且調(diào)用 TextView.setText(CharSequence) 方法,但是這樣做很有可能一直觸發(fā)已經(jīng)創(chuàng)建好的布局和額外的對(duì)象的重新測量和重新繪制。為了減少性能損耗,將文本設(shè)置為 TextView.setText(Spannable, BufferType.SPANNABLE) ,然后當(dāng)你需要更改 span 的時(shí)候,通過將 TextView.getText() 轉(zhuǎn)換為 Spannable 從 TextView 獲得 Spannable 對(duì)象。我們會(huì)在未來的文章中詳細(xì)討論 TextView.setText 的實(shí)現(xiàn)原理和不同的性能優(yōu)化方式。

舉個(gè)例子,考慮通過這樣的方式設(shè)置和獲取 Spannable :

現(xiàn)在,當(dāng)我們?cè)? spannableText 上設(shè)置了 span 之后,我們就不需要再調(diào)用 textView.setText 了,因?yàn)槲覀冋谥苯有薷? TextView 持有的 CharSequence 對(duì)象的引用。

這是當(dāng)我們?cè)O(shè)置了不同的 span 之后會(huì)發(fā)生什么:

情形1: 影響外觀的 span

當(dāng)我們附加了一個(gè)影響外觀的 span 之后, TextView.onDraw 方法被調(diào)用但 TextView.onLayout 沒有。這是文本重繪,但寬和高保持原樣。

情形2: 影響尺寸的 span

因?yàn)? RelativeSizeSpan 改變了文本的大小,文本的寬和高變化,文本的布局方式(舉個(gè)例子,在 TextView 的大小沒有變化的情況下,一個(gè)特定的單詞現(xiàn)在可能會(huì)換行)。 TextView 需要計(jì)算新的大小所以 onMeasure 和 onLayout 均被調(diào)用。

左圖:ForegroundColorSpan——影響外觀的 span;右圖:RelativeSizeSpan——影響尺寸的 span

一個(gè) span 對(duì)文本產(chǎn)生的影響既可以在字符級(jí)別,更新元素,如背景顏色、樣式或大小,也可以在段落級(jí)別,更改整個(gè)文本塊的對(duì)齊或者邊距。根據(jù)所需的樣式,span 既可以繼承自 CharacterStyle ,也可以引入 ParagraphStyle 。 繼承自 ParagraphStyle 的 span 必須從第一個(gè)字符附加到單個(gè)段落的最后一個(gè)字符,否則 span 不會(huì)被顯示。在 Android 中,段落是基于換行符 (\n) 定義的。

在 Android 中,段落是基于換行符 (\n) 定義的。

影響段落的 span

舉個(gè)例子,像 BackgroundColorSpan 這樣的 CharacterStyle ,可以被附加到文本中的任何字符上。這里,我們把它附加到第五到第八個(gè)字符上。

ParagraphStyle 的 span,像 QuoteSpan ,只能夠被附加到段落的開始,否則行和文本之間的邊距就不會(huì)出現(xiàn)。例如,“Text is\nspantastic” 在文本的第8個(gè)字符包含了一個(gè)換行符,所以我們可以給它附加一個(gè) QuoteSpan ,段落從那里開始就會(huì)被添加樣式。如果我們?cè)?或8之外的任何位置附加 span,text 就不會(huì)被添加樣式。

左圖:BackgroundColorSpan -- 影響字符的 span。右圖:QuoteSpan -- 影響段落的 span

在實(shí)現(xiàn)你自己的 span 時(shí),你需要確定你的 span 是否會(huì)影響字符或段落級(jí)別的文本,以及它是否也會(huì)影響文本的布局或外觀。但是,在從頭開始編寫自己的實(shí)現(xiàn)之前,檢查一下是否可以使用 framework 中提供的 span。

太長不看:

假設(shè)我們需要實(shí)現(xiàn)一個(gè) span,它允許以一定的比例增加文本的大小,比如 RelativeSizeSpan ,并設(shè)置文本的顏色,比如 ForegroundColorSpan 。為此,我們可以擴(kuò)展 RelativeSizeSpan ,并且 RelativeSizeSpan 提供了 updateDrawState 和 updateMeasureState 回調(diào),我們可以復(fù)寫繪制狀態(tài)回調(diào)并設(shè)置 TextPaint 的顏色。

注意:同樣的效果可以通過在同一文本上同時(shí)應(yīng)用 RelativeSizeSpan 和 ForegroundColorSpan 實(shí)現(xiàn)。

測試 span 意味著檢查確實(shí)已對(duì) TextPaint 進(jìn)行了預(yù)期的修改,或者是否已經(jīng)將正確的元素繪制到了 canvas 上。例如,假設(shè)一個(gè) span 的自定義實(shí)現(xiàn)為段落添加制定大小和顏色的項(xiàng)目符號(hào)點(diǎn),以及左邊距和項(xiàng)目符號(hào)點(diǎn)之間的間隙。在 android-text sample 查看具體實(shí)現(xiàn)。為了測試這個(gè)類,實(shí)現(xiàn)一個(gè) AndroidJUnit 類,確實(shí)檢查:

測試 Canvas 的交互可以通過 mock canvas,給 drawLeadingMargin 方法傳 mock 過的引用并使用正確的參數(shù)驗(yàn)證是否已調(diào)用正確的方法來實(shí)現(xiàn)。

在 BulletPointSpanTest 查看其余的測試。

Spanned 接口允許給文本設(shè)置 span 和從文本獲取 span 。通過實(shí)現(xiàn)一個(gè) Android JUnit 測試,檢查是否在正確的位置添加了正確的 span。在 android-text sample 我們把項(xiàng)目符號(hào)點(diǎn)標(biāo)記標(biāo)簽轉(zhuǎn)換為了項(xiàng)目符號(hào)點(diǎn)。這是通過給文本在正確的位置附加 BulletPointSpans 。 下面展示了它是如何被測試的:

查看 MarkdownBuilderTest 獲取更多測試示例。

span 是一個(gè)非常強(qiáng)大的概念,它深深的嵌入在文本渲染功能中。它們可以訪問 TextPaint 和 Canvas 等組件,這些組件允許在 Android 上使用高度可自定義的文本樣式。在 Android P 中,我們?yōu)?framework span 添加了大量文檔,所以,在實(shí)現(xiàn)你自己的 span 之前,查看那些能夠獲取到的內(nèi)容。

在以后的文章中,我們將向你詳細(xì)介紹 span 在底層是如何工作的以及怎樣高效地使用它們。例如,你需要使用 textView.setText(CharSequence, BufferType) 或者 Spannable.Factory 。 有關(guān)原因的詳細(xì)信息,請(qǐng)保持關(guān)注。

本文原作者 Florina Muntenescu ,Android Developer Advocate @Google . 原文地址: . 本文由 TonnyL 翻譯,發(fā)表在:

請(qǐng)教:android gridlayout 如何設(shè)置列寬和行高?

GridLayout是網(wǎng)格布局,它會(huì)均分你的布局容器,所以行列高度和寬度是統(tǒng)一的,只能通過調(diào)整布局容器大小來改變。如果要控制單元網(wǎng)格的大小,那只能用GridBagLayout了

關(guān)于設(shè)置列寬和行高,GridView本身只是個(gè)視圖展示和listview一樣,要想把里面的元素縮小放大,把添加到里面的布局縮小放大即可


本文標(biāo)題:android行高,android行高設(shè)置
本文網(wǎng)址:http://www.xueling.net.cn/article/dsiheis.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 国产女优在线观看 | 欧美日韩视频在线观看一区 | 亚洲最大的免费观影网站 | 国产精品无码无片在线观看 | 国产成人AV片无码免费 | 小草毛片 | 野花社区www官网在线观看 | FREEXXXXHD麻豆精品A∨ | 91狠狠操| 亚洲免费一级视频 | 日本xxxx高清色视频在线播放 | 免费AV片在线观看网址 | 视频一区中文字幕精品 | 爆操美女网站 | 呦女人与动人物A级毛片 | 自拍偷拍99 | 亚洲精品免费播放 | av在线亚洲欧洲日产一区二区 | 奶头和荫蒂添的好舒服囗交 | 玩丰满高大邻居人妻无码 | 性一交一乱一透一a级 | 曰本大码熟中文字幕 | 青青激情视频 | 中国特级黄色大片 | 好爽又高潮了毛片一区二区 | 热久久999 | 无码人妻一区二区三区免费 | 中文字幕综合 | 人人干夜夜| 乌克兰少妇大胆大BBW | 久久黄色网络 | 亚洲狠狠婷婷综合久久久久 | 久久婷婷五月综合色d啪 | 艹逼逼逼| 欧美人与zozozoxxxx | 91福利影院在线观看 | 熟女无套高潮内谢视频 | 欧美老妇毛葺葺BBXX | 国产亚洲精久久久久久 | 亚洲m码欧洲s码sss222 | 成人午夜视屏 |