用程式碼實現GridLayout平均分佈樣式
本人發帖宗旨:
1.不長篇大論。
2.發文前簡單搜一下是不是有人發過(簡單的)。
3.直說知識點,基礎知識請自行補習。
4.隨性
前提:使用android.support.v7.widget.GridLayout包,相容性強了不少。用的Layout Inspector展示,GridLayout子View大小由GridLayout管理,所以想自己控制的朋友請在GridLayout處理完後再設定大小。
熟悉GridLayout的朋友一定發愁動態新增子View,固定View直接寫一個佈局檔案就行了,可以用app:layout_columnWeight=”1”和 app:layout_rowWeight=”1”實現平均分佈,但是動態新增子View就不行了。
(⊙o⊙),那是功夫不到家,我扒了半天程式碼,定位到weight和spec有關,聽我娓娓道來。
然後就是怎麼設定spec到GridLayout上有效果
為子View設定layout佈局引數,注意是這個GridLayout.LayoutParams mLayoutParams = new GridLayout.LayoutParams(rowSpec,columnSpec);rowSpec和columnSpec怎麼來的?
mLayoutParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1, 1.0f);Spec構造器有好多個,這個三個引數中
第一個為位置座標(android:layout_row 和 android:layout_column )
第二個引數為合併(android:layout_rowSpan和android:layout_columnSpan跨行列顯示)
第三個引數為權重weight,float型別;
3.往GridLayout裡新增設定了以上佈局的View就行了,結束。
4.其他
父佈局
<LinearLayout
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical"></LinearLayout>
自定義View(還不知道具體寫啥)
public class ImageLayout extends GridLayout { public ImageLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public ImageLayout(Context context) { super(context); init(); } private void init() { setBackgroundColor(Color.GRAY); setColumnCount(5); setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); for (int mI = 0; mI < 10; mI++) { ImageView mImageView = new ImageView(getContext()); GridLayout.LayoutParams mLayoutParams = new GridLayout.LayoutParams(); mLayoutParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1, 1.0f); mLayoutParams.rowSpec = GridLayout.spec(GridLayout.UNDEFINED, 1, 1.0f); mImageView.setLayoutParams(mLayoutParams); mImageView.setScaleType(ImageView.ScaleType.CENTER); mImageView.setImageResource(R.drawable.ic_launcher); addView(mImageView); } } }
相關推薦
用程式碼實現GridLayout平均分佈樣式
本人發帖宗旨: 1.不長篇大論。 2.發文前簡單搜一下是不是有人發過(簡單的)。 3.直說知識點,基礎知識請自行補習。 4.隨性 前提:使用android.support.v7.widget.GridLayout包,相容性強了不少。用的Layout I
https是如何加密的 (知道了原理之後,希望自己能用程式碼實現一下,還有用於對個人資訊和公鑰進行加密的雜湊演算法,有時間也去查一下)
由於http協議是明文傳輸資料,資料的安全性沒有保障。為了改進這種明文傳輸協議,https誕生了。 https是在應用層和傳輸層之間,增加了一層ssl加密。對於加密,請往下看: 1、對稱加密 每次在傳送資料之前,伺服器先生成一把金鑰,
Unity 用程式碼實現建立資源
用程式碼加圖片資源,建立材質 //圖片物件 Texture2D texture = null; void Start() { //建立材質,並設定預設著色器 Material mat = new Material (Shader.Find("Tran
簡單幾行C語言程式碼實現高斯分佈
由於專案需要產生一個高斯分佈,所以去網上查詢,結果很多,但是都沒有足夠的註釋或者原理講解,所以大部分程式碼都看不懂,也沒法確定程式碼的結果是否正確。因此想從原理上來解決這個問題。具體的理論推導請看 http://blog.sina.com.cn/s/blog_9ce5a1b
java用程式碼實現高併發
這裡申請了1000個執行緒,並且執行1000次任務。當所有任務完成後,main退出。 publicclass Test { publicstaticvoid main(String[]
VC++教你用程式碼實現把拷貝的內容放到剪貼簿。
以下是一個例項,將report控制元件拷貝下來的內容放到剪貼簿,作為文字列拷貝。 /** コピーコマンドの処理関數. * @param なし. * @return なし. * @exception なし. */ void CGTDTemplatePropDlg::m
用程式碼實現輸入i am a student ,輸出 student a am i,不能用類庫函式
1.輸入i am a student ,輸出student a am i,不能用類庫函式 public static void main(String[]args){ String s1 = "i am a student"; //獲取到擷取後的字串陣列 String[
ffmpeg用程式碼實現自己的muxer
1、概述 本程式碼實現了一個muxer並加入到ffmpeg的AVOutputFormat 連結串列中去,使程式碼能直接呼叫。實現的意義一是瞭解ffmpeg程式碼結構,二是可以自己整自己的視訊格式,讓別人播放不了。 2、程式碼 簡單看下程式碼: /* *本程式主要實現一個自
一個ArrayList物件aList中存有若干個字串元素,現欲遍歷該ArrayList物件,刪除其中所有值為"abc"的字串元素,請用程式碼實現。
package com.CSDN;import java.util.ArrayList;/* * 一個ArrayList物件aList中存有若干個字串元素, * 現欲遍歷該ArrayList物件,刪除其中所有值為"abc"的字串元素,請用程式碼實現。 * 思路: * 1.定義一個靜態方法,分別傳入引數
用程式碼實現以下需求
(1)定義學生類,包含姓名(String name),性別(String gender),年齡(int age)三個屬性,生成空參有參構造,set和get方法,toString方法(2)鍵盤錄入6個學員資訊(錄入格式:張三,男,25),要求有兩個相同的資訊,將6個學員資訊存
用程式碼實現註冊Ocx和Dll
在windows系統中,可以通過Regsvr32來實現註冊ocx或者dl, 程式設計時,呼叫Regsvr32來註冊,卻不能正常執行。尤其是在Win7系統中,需要管理員身份才能執行。 使用下面的程式碼則能正常註冊。 //註冊 function RegisterDllServer
怎麼理解用程式碼來實現資料結構
怎麼能更好的用程式碼實現資料結構內容? 個人理解為:1.首先要掌握資料結構的邏輯,也就是說要知道資料結構是怎麼實現的。這一點達不到的話,後面根本就無從談起。 &nbs
0004-用OpenCV實現影象平移的程式碼(分影象尺寸不變和變兩種情況)
影象平移是啥東西就不用講了吧!需要注意的是影象平移有兩種,第一種是平移後圖像大小不變,這樣會損失影象的部分;第二種是平移後圖像大小變化,這樣原影象不會有損失。 直接上程式碼,大家看效果吧! 程式碼流程如下: 讀取影象→顯示原影象→呼叫自定義的函式translateTransform,作平移後
python3:用程式碼演示Socket和Server 實現通訊.
這個是 socket程式設計的流程,socket 的本質是個程式設計介面,它把應用層和傳輸層進行了連線。 連線過程可以分為三個步驟:伺服器監聽,客戶端請求,連線確認。 伺服器監聽 是指 伺服器端socket一直是開放的狀態,隨時等待客戶端發來請求 伺服器端socket一
用struts2實現 完整版分頁程式碼
1. userPojo.java原始碼 public class FenyePojo { private Integer numsOfPage;// 每頁顯示多少條資料 private Integer page;// 當前顯示第幾頁 private Integer nums;// 總共多少條資料 p
用java8實現6行程式碼搞定遞迴刪除多級非空目錄
在review 程式碼的時候,看到同事寫的程式碼刪除多級非空目錄,寫的很長一串,太複雜,就自己寫了一個,分享給大家: package com.test.java8; import java.io.File; import java.util.Arrays; import java.uti
用20行JS程式碼實現貼上板功能
document.execCommand() 此方法就是實現剪貼簿的關鍵,它可以傳入cut,copy,paste三種引數。從最常用的document.execCommand('copy')開始介紹。 在使用之前,我們應該檢查瀏覽器是否支援copy命令:document.queryCommandS
用winform實現的類似於WPF中PopUp控制元件的一段程式碼
用winform實現的類似於WPF中PopUp控制元件的一段程式碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using Syste
用shell實現一個小指令碼,用來同來統計自己某個檔案下的程式碼,總的程式碼行數,總的註釋量,總的空行量?支援遍歷查詢,支援軟連結查詢
[[email protected] yunwei]# cat sum_code_row_version1.4.sh #!/bin/bash # File Name: sum_code_row.sh # Author: Liwqiang # mail: [email
######業務儘可能用sql實現(縮短後臺響應時間):最近都在優化之前的程式碼:發現每個模組的index頁都需要優化(很多都在迴圈裡操作資料庫:菜!初級!)
###最近都在優化之前的程式碼: 發現每個模組的index頁都需要優化(很多都再迴圈裡操作資料庫:菜!初級!或者說趕專案沒想優化這回事吧) ===》解耦合前提下,能用一條SQL解決的,多測試寫SQL。可以減少很多程式碼。 希望我在疲憊,腦子不好使時候也能堅持吧。(注意休