比例矩形RatioLayout

2021-07-12 04:16:05 字數 1879 閱讀 5340

在開發中有很多場景需要使用的比例矩形,比如必須保持一定的寬高比才不會變形。但是如果在gridview中按列排列,如果只是指定了列數的話,在不同解析度的手機下,每個item的寬度是不定的,直接導致了在高度也不好設定。因此只能自定義按照一定比例的矩形布局才行。

android:layout_width="match_parent"

android:layout_height="wrap_content">

android:id="@+id/video_thumb"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:scaletype="fitxy"/>

import android.content.context;

import android.util.attributeset;

import android.widget.relativelayout;

* created by zhendanon 5/21/2016.

public class ratiorectlayout extends relativelayout {

publicratiorectlayout(context context, attributeset attrs, int defstyle) {

super(context,attrs, defstyle);

publicratiorectlayout(context context, attributeset attrs) {

super(context,attrs);

public ratiorectlayout(contextcontext) {

super(context);

@suppresswarnings("unused")

@override

protected voidonmeasure(int widthmeasurespec, int heightmeasurespec) {

// for ******implementation, or internal size is always 0.

// we dependon the container to specify the layout size of

// our view.we can't really know what it is since we will be

// adding andremoving different arbitrary views and do not

setmeasureddimension(getdefaultsize(0, widthmeasurespec),

getdefaultsize(0, heightmeasurespec));

// childrenare just made to fill our space.

intchildwidthsize = getmeasuredwidth();

intchildheightsize = getmeasuredheight();

widthmeasurespec = measurespec.makemeasurespec(childwidthsize,

measurespec.exactly);

// width :height = 2 : 3; 這裡就是控制比例的地方

heightmeasurespec = measurespec.makemeasurespec(childwidthsize * 3>> 1,

measurespec.exactly);

super.onmeasure(widthmeasurespec, heightmeasurespec);

特此記錄

C 求解近似比例 比例的壓縮

在日常生活中,我們在收集資料之後,習慣用比例描述兩數之間的比例關係,但是如果資料量過大,如566487 3842145,我們很難看出兩者之間的實際關係,但是如果把資料範圍壓縮,變成3 20,雖然數值上造成了一定損失,但是依舊能看出兩者之間的關係,並更容易理解。所以有以下的演算法問題 對於任意的輸入n...

比例尺 定量比例尺

比例尺 就像函式一樣,將乙個量轉換為另乙個量,定義域到值域的轉換。每個比例尺都需要指定乙個domain 定義域 和range 值域 定量比例尺 定義域是連續的。值域有連續的也有離散的。var linear d3.scale.linear domain 0,20 range 0,100 console...

AutoLayout比例約束

本文記錄如何在 uistoryboard 或者 xib 中進行百分比布局,包括 在 ios nslayoutconstraint priority 一文中提到過 multiplier,上述提到的百分比布局都是基於 multiplier 實現的,下面來一一檢視其實現。view.width 佔其 sup...