ConstraintLayout需要兩次通過才能對任意大小的視圖進行度量(尺寸爲0dp的視圖)。所以我有一個基於比率的觀點,我想測量在用戶看到視圖之前它有多大。如果這很重要,我正在做這是一個回收站的適配器。什麼到目前爲止,我已經試過如下:Android - 如何測量包裝在constraintLayout中的'任意大小'視圖?
iv.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
width = iv.getMeasuredWidth();
height = iv.getMeasuredHeight();
這裏是佈局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_marginTop="0dp"
app:layout_constraintDimensionRatio="H,3:2"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
</android.support.constraint.ConstraintLayout>
但這總是返回我1寬度和1的高度。我怎樣才能得到實際的測量結果?
我需要測量視圖的原因是構建一個url。這裏有一個例子網址,我需要:
mywebsiteAtImgix.com/img/books/20170316171929_6b1c02a5.jpg?auto=compress&dpr=1&fit=clip&ixlib=java-1.1.1&q=75&w=1&h=1
更多信息: 我使用的是一家名爲imgix他們擴展我爲我的所有圖像。這非常快,他們緩存等,所以它對網頁圖像很有用。
無論如何,請注意查詢參數的寬度稱爲「w」和高度「h」。現在他們進來作爲1但非約束佈局圖像我測量時,我得到的尺寸確定,從imgix返回的圖像是一個很好的大小。如果我使用1和1作爲尺寸,它會將原始圖像帶回原始圖像(2mb至5mb +)。我需要從constraintLayout中獲取維度,以便我可以正確地構造URL。希望這可以解決問題。
不,我知道寬度和高度尺寸後插入drawable。我實際上正在做一個網絡電話後,我cinstruct的形象的網址。但是這個url需要圖片的高度和寬度。它是一家名爲imgix – j2emanue
的公司,我只需要一種方法來測量約束佈局,以便用戶看到它的用戶 – j2emanue
感謝您的跟進。我更新了我的問題,所以你可以看到爲什麼我需要它。基本上。我需要使用視圖的高度和寬度來構建網址。那麼imgix公司會爲我提供精確的寬度和高度的圖像。 android不會縮放任何東西。這些圖像非常脆,而且速度很快。 – j2emanue