當前位置:首頁 » 安卓系統 » android矩陣

android矩陣

發布時間: 2022-04-20 02:04:26

『壹』 android中relativelayout是什麼布局

RelativeLayout相對布局
相對布局 RelativeLayout 允許子元素指定它們相對於其父元素或兄弟元素的位置,這是實際布局中最常用的布局方式之一。它靈活性大很多,當然屬性也多,操作難度也大,屬性之間產生沖突的的可能性也大,使用相對布局時要多做些測試。
下面是常用的一些屬性
RelativeLayout用到的一些重要的屬性:
第一類:屬性值為true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相對於父元素完全居中
android:layout_alignParentBottom 貼緊父元素的下邊緣
android:layout_alignParentLeft 貼緊父元素的左邊緣
android:layout_alignParentRight 貼緊父元素的右邊緣
android:layout_alignParentTop 貼緊父元素的上邊緣
android:layout_alignWithParentIfMissing 如果對應的兄弟元素找不到的話就以父元素做參照物
第二類:屬性值必須為id的引用名「@id/id-name」
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左邊
android:layout_toRightOf 在某元素的右邊
android:layout_alignTop 本元素的上邊緣和某元素的的上邊緣對齊
android:layout_alignLeft 本元素的左邊緣和某元素的的左邊緣對齊
android:layout_alignBottom 本元素的下邊緣和某元素的的下邊緣對齊
android:layout_alignRight 本元素的右邊緣和某元素的的右邊緣對齊
第三類:屬性值為具體的像素值,如30dip,40px
android:layout_marginBottom 離某元素底邊緣的距離
android:layout_marginLeft 離某元素左邊緣的距離
android:layout_marginRight 離某元素右邊緣的距離
android:layout_marginTop 離某元素上邊緣的距離

EditText的android:hint
設置EditText為空時輸入框內的提示信息。
android:gravity
android:gravity屬性是對該view 內容的限定.比如一個button 上面的text. 你可以設置該text 在view的靠左,靠右等位置.以button為例,android:gravity="right"則button上面的文字靠右
android:layout_gravity
android:layout_gravity是用來設置該view相對與起父view 的位置.比如一個button 在linearlayout里,你想把該button放在靠左、靠右等位置就可以通過該屬性設置.以button為例,android:layout_gravity="right"則button靠右

android:layout_alignParentRight
使當前控制項的右端和父控制項的右端對齊。這里屬性值只能為true或false,默認false。
android:scaleType:
android:scaleType是控制圖片如何resized/moved來匹對ImageView的size。ImageView.ScaleType / android:scaleType值的意義區別:
CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示
CENTER_CROP / centerCrop 按比例擴大圖片的size居中顯示,使得圖片長(寬)等於或大於View的長(寬)
CENTER_INSIDE / centerInside 將圖片的內容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等於或小於View的長/寬
FIT_CENTER / fitCenter 把圖片按比例擴大/縮小到View的寬度,居中顯示
FIT_END / fitEnd 把圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置
FIT_START / fitStart 把圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置
FIT_XY / fitXY 把圖片不按比例擴大/縮小到View的大小顯示
MATRIX / matrix 用矩陣來繪制,動態縮小放大圖片來顯示。
** 要注意一點,Drawable文件夾裡面的圖片命名是不能大寫的。

『貳』 Android中的Matrix,以及set,pre和post的區別

Matrix包含一個3 X 3的矩陣,專門用於圖像變換匹配。

Matrix提供了四種操作:
translate(平移)
rotate(旋轉)
scale(縮放)
skew(傾斜)
也就是說這4種操作都是對這個3 X 3的矩陣設值來達到變換的效果。
Matrix沒有結構體,它必須被初始化,通過reset或set方法。
OK,Matrix介紹完了,我們來看看set、pre、post的區別。
pre是在隊列最前面插入,post是在隊列最後面追加,而set先清空隊列在添加(這也是上文提到的「Matrix沒有結構體,它必須被初始化,通過reset或set方法」的原因)。
下面通過一些例子具體說明:
matrix.preScale(2f,1f);
matrix.preTranslate(5f, 0f);
matrix.postScale(0.2f, 1f);
matrix.postTranslate(0.5f, 0f);
執行順序:translate(5, 0) -> scale(2f, 1f) -> scale(0.2f, 1f) -> translate(0.5f, 0f)
matrix.postTranslate(2f, 0f);
matrix.preScale(0.2f, 1f);
matrix.setScale(1f, 1f);
matrix.postScale(5f, 1f);
matrix.preTranslate(0.5f, 0f);

執行順序:translate(0.5f, 0f) -> scale(1f, 1f) -> scale(5f, 1)

『叄』 求教,如何在Android中將圖片轉化為矩陣

Android本身的android.graphics.Bitmap實現
一般在Android使用圖片,都會用到這個類,這個類中有一個函數:
getPixels(int[] pixels, int offset, int stride, int x, int y, int width, int height)
Returns in pixels[] a of the data in the bitmap.
功能和你要求的類似,只不過返回的是一位數組,轉成二維數組應該不是問題吧。
使用是需注意,對於比較大的圖片,你的操作很可能會比較佔用內存,需要處理一下out of memory的exception。

『肆』 android matrix pre post set 操作的是矩陣 和原始變換有關系嗎

Matrix主要用於對平面進行縮放,平移,旋轉以及傾斜操作,為簡化矩陣變換,Android封裝了一系列方法來進行矩陣變換,其中包括pre系列方法:preScale,preTranslate,preRotate,preSkew,set系列方法:setScale,setTranslate,setRotate,setSkew,post系列方法:postScale,postTranslate,postRotate,postSkew。


通過將變換矩陣與原始矩陣相乘來達到變換的目的,例如:


平移:



有一點要說明:上圖中的原始矩陣為3*1的矩陣,我們可以將其擴展成3*3的矩陣,否則下文涉及到的後乘操作將不成立,甚至在後乘的時候我們可以看成是1*3的矩陣,這不影響實際的變換效果。


之前一直不理解為什麼要設置pre,set和post三種變換操作,我一直認為只通過post操作即可完成所有的變換,後來通過查閱相關資料以及同事的指點,有了一些粗淺的認識,當然現在的認識仍然是模模糊糊,甚至是錯誤的,希望通過博客和大家分享並糾正我可能存在的錯誤。


pre方法表示矩陣前乘,例如:變換矩陣為A,原始矩陣為B,pre方法的含義即是A*B


post方法表示矩陣後乘,例如:變換矩陣為A,原始矩陣為B,post方法的含義即是B*A


matrix.preScale(0.5f, 1);

matrix.preTranslate(10, 0);

matrix.postScale(0.7f, 1);

matrix.postTranslate(15, 0);

等價於:


translate(10, 0) -> scale(0.5f, 1) -> scale(0.7f, 1) -> translate(15, 0)


注意:後調用的pre操作先執行,而後調用的post操作則後執行。


set方法一旦調用即會清空之前matrix中的所有變換,例如:


matrix.preScale(0.5f, 1);

matrix.setScale(1, 0.6f);

matrix.postScale(0.7f, 1);

matrix.preTranslate(15, 0);

等價於


translate(15, 0) -> scale(1, 0.6f) -> scale(0.7f, 1)


matrix.preScale (0.5f, 1)將不起作用。


以下為個人理解,不保證一定正確:


如果通過getMatrix()得到的matrix是一個未經過任何變換的單元矩陣,或者是之前已經調用過setMatrix的matrix,那麼我們可以僅使用post系列方法或者pre系列方法的其中一種來完成各種變換操作,因為此時我們僅使用pre或者post方法來定義各種變換次序。


但是如果我們得到的matrix是一個非單元矩陣,並且該matrix還未調用setMatrix應用到實際中,此時我們可能同時需要pre和post方法來實現我們所需要的變換,例如C是通過getMatrix得到的並滿足之前描述的matrix,此時如果我想在現有的變換之前進行某些變換,此時只有pre方法可以做到,假如C是一個執行過postScale操作的matrix,此時我想在postScale之前進行平移,那隻有調用preTranslate,這樣當調用setMatrix的時候會先進行preTranslate操作,再進行postScale操作。必須這么做的前提就是先scale後translate和先translate後scale得到的是不同的變換效果。

『伍』 android Matrix.setRotate 和 postRotate的區別

其實Matrix方法中的setRotate()方法會先清除該矩陣,即設為單位矩陣。之後設置旋轉操作的,同樣,setTranslate()等方法也是一樣的。所以是不能疊加各種效果在一起的,因此會出現我上述的問題。

所以,如果是想多種效果同時使用的話,用postRotate(), postTranslate()等類似的矩陣變換方法吧。

『陸』 android怎麼布局按鈕矩陣

Android 布局文件View控制項的隨機排列需要使用ListView控制項或者GridView控制項來實現,原理是利用Adapter隨機數據源來實現的。
使用自定義Adapter綁定數據。
使用集合隨機
Collections.shuffle(list); adapter.setData(list);,並設置將數據綁定到適配器中。
重新刷機列表 adapter.notifyDataSetChanged();
刷新控制項列表後,即實現了隨機的功能。

『柒』 android canvas畫圖可以利用矩陣嗎

可以哦
用SDK manager即可,很好用,圖形化,可以不寫代碼

『捌』 Android的postScale()和preScale()代表什麼意思啊有什麼區別啊

雖然不知道你哪裡來的方法,但是根據經驗來講,
preScale()是預縮放,是執行前的准備工作;
postScale()是執行縮放(應該是在新的線程里執行)。post本身其實是一種網路請求方式。

『玖』 Android繪制圖片的幾種方式

在android中做圖像鏡像有很多方法,今天算是學習了!
兩種方法如下:

復制代碼 代碼如下:

//方法一
Matrix matrix = new Matrix();
matrix.postScale(leftOrRight, 1, bmpW/2, bmpH/2);//前兩個是xy變換,後兩個是對稱軸中心點
matrix.postTranslate(x, y);
canvas.drawBitmap(bmpLuffy[0], matrix, paint);
//方法二
// canvas.save();
// canvas.scale(-1, 1, x + bmpLuffy[0].getWidth() / 2, y + bmpLuffy[0].getHeight() / 2);
// canvas.drawBitmap(bmpLuffy[0], x, y, paint);
// canvas.restore();

方法一,使用矩陣的方式(3x3)矩陣:
1、先使用postScale的方式將圖片以點(bmpW/2,bmpH/2)為中心,以x=bmpW/2為對稱軸翻轉;
2、使用postTranslate,將圖片移到(x,y)坐標
方法二,畫布翻轉(略)
注意如下問題:
對於其中的bmpW和bmpH是指所用圖片的寬高,需要使用圖片bmp.getWidth()和bmp.getHeight()獲取,
不能使用PC上看到的大小,否則可能會出現錯位!

熱點內容
python中ord函數 發布:2025-05-16 10:14:25 瀏覽:340
電腦啟動後無法連接伺服器 發布:2025-05-16 10:06:39 瀏覽:984
jar包編譯過程 發布:2025-05-16 10:03:37 瀏覽:679
選舉源碼 發布:2025-05-16 09:58:59 瀏覽:749
超級訪問陳小春應采兒 發布:2025-05-16 09:43:29 瀏覽:479
緩存視頻合並工具最新版 發布:2025-05-16 09:35:03 瀏覽:195
花雨庭伺服器ip地址和埠 發布:2025-05-16 09:34:58 瀏覽:240
同時修改多台伺服器管理地址工具 發布:2025-05-16 09:20:36 瀏覽:422
什麼配置就能玩地平線 發布:2025-05-16 09:13:46 瀏覽:83
python旋轉圖片 發布:2025-05-16 09:13:40 瀏覽:639