2016-11-12 10 views
0

Glideを使用してイメージをImageViewに読み込んでいます。ImageView width = 0.75x画面の幅と高さ= 1.5 x新しいImageViewの幅XML

イメージがインターネットからロードされる前に、イメージのロードが完了するまで、プレースホルダイメージを追加します。私は幸いにも、固定アスペクト比を有するロードだ

画像、すなわち、高さ/幅= 1.5

Iは、次の要件を持っている: 画像ビューの幅が画面幅の75%を占めるべきです。 高さはCurretly私は私が探している何本プログラム的このよう

mImageViewPic = (ImageView) view.findViewById(R.id.networkImageView); 
mImageViewPic.requestLayout(); 

// 75% width of the screen taken by the image 
mImageViewPic.getLayoutParams().width = (int) (getContext().getResources() 
               .getDisplayMetrics().widthPixels * 0.75); 

// height = 1.5 * width 
mImageViewPic.getLayoutParams().height = (int) (mImageViewPic 
               .getLayoutParams().width * 1.5); 

を達成しています

width = 0.75 * screenWidth; 
height = 1.5 * width; 

すなわち正確に1.5倍NEWスクリーン幅、 されるべきですこれらの要件に対する効率的な解決策は、プログラミングによるものではなくXMLによるものです。
レイアウトの幅を75%として設定できることは知っていますが、それ以降はどのように高さを設定しますか?

私の要件がはっきりしていることを願います。前もって感謝します。

答えて

0

ためグライドでオーバーライド(W、H)メソッドを使用することができます。 たとえば、16:9のアスペクト比が必要な場合は、PercentRelativeLayoutに次のような値を追加する必要があります。

android:layout_width="300dp" 
app:layout_aspectRatio="178%" 
関連する問題