我們在開發的時候,是不是有這樣的需求呢?
1.***layout是個正方形;
2.***view是個正方形;
我們下面就以具體的情景來做一次簡單的開發來滿足我們的需求
建立乙個relativelayout,滿足高度等於寬度,寬度是填充父容器,這樣來滿足我們不論在何種螢幕尺寸下面,都能很好的適配,下面貼**我們先自定義乙個 class squarerelativelayout extends relativelayout
效果圖1(寬度=」match_parent」,高度就算我們在布局時寫0dp,照樣可以使高度等於寬度):這裡其實我只是簡單的重寫了onmeasure()方法,要求是高度要等於寬度,所以我們就直接在呼叫父類的onmeasure()方法時把寬度的測量空間直接傳值給了高度的測量空間引數public class
squarerelativelayout
extends
relativelayout
public squarerelativelayout(context context, attributeset attrs)
public squarerelativelayout(context context, attributeset attrs, int defstyleattr)
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
}
效果圖2(寬度=」100dp」,高度就算我們在布局時寫500dp,照樣可以使高度等於寬度):
建立乙個imageview,滿足寬度等於高度,下面貼**ps:實現正方形控制項就這麼簡單,如果我們想實現固定比例控制項,也是同樣的思路,重寫onmeasure()方法,然後在此方法中實現邏輯**關鍵**public class
squareimageview
extends
imageview
public squareimageview(context context, attributeset attrs)
public squareimageview(context context, attributeset attrs, int defstyleattr)
@override
protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
}
把高度測量空間傳給寬度測量空間protected void onmeasure(int widthmeasurespec, int heightmeasurespec)
效果圖:
recyclerview 實現正方形網格效果
然後就是按慣例寫item布局 一切就緒,真機跑起來,我用的一台的nexus4測試,下面是顯示效果 仔細想想,item布局的寬度是你指定recycleview列數以後確定下來,高度在onmeasue方法裡計算出來,如果想要實現效果圖那樣矩形的效果,自然需要寬高一樣。有了思路以後,只需要把item布局的...
css實現正方形div的3種方式
1.css3 vw 單位 1vw 1 viewport width hello,viewport vw 實測不管用 chrome,版本 49.0.2623.110 2.padding bottom placeholder 這個確實管用,但是沒有辦法在裡面寫字了 3,padding bottom af...
正方形等分計數總正方形數
如下圖正方形,邊長是1cm,每邊被四等分,求一共分出了多少個正方形。經過手工數 邊長為1 4的正方形 16 邊長為1 2的正方形 9 邊長為3 4的正方形 4 邊長為1的正方形 1 所以一共是 30個正方形。當上述的正方形,邊長被3等分的情況又如何 還是手動數 邊長為1 3的正方形 9 邊長為2 3...