2016-04-14 16 views
0

Hei、私はLinearLayout(orientation:hor)を保持するhorスクロールビューを持っています。Horizo​​ntalScrollView内のImageViewをLinearLayoutに合わせる

 <HorizontalScrollView 
     android:id="@+id/adImageScroller" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <LinearLayout 
      android:id="@+id/adImageViewContainer" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" 
      android:layout_gravity="left" 
      android:background="@color/material_blue_grey_950"> 
     </LinearLayout> 

    </HorizontalScrollView> 

このLinearLayoutには、ImageViews(すべての画像にランダムなアスペクト比があります)を動的に入力しています。

これであるのLinearLayoutを移入onCreateView方法:

私は必要がありますが、その様相を維持しながら、すべての画像は、灰色の領域(horizo​​ntalScrollView高さ)の高さにスケーリングされるようにされて得ることはありません何
for (int i = 0; i < reObjectPicUrls.size(); i++) { 
     String url = reObjectPicUrls.get(i).getContent(); 
     ImageView imageView = new ImageView(getActivity()); 

     imageView.setId(i); 
     imageView.setPadding(2, 2, 2, 2); 
     new DownloadImageTask(imageView) 
       .execute(url); 
     imageView.setScaleType(ImageView.ScaleType.FIT_START); //<-- WORKS IN XML 
     imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT)); //<-- WORKS IN XML 
     imageViewContainer.addView(imageView); 
} 

比。

画像が全てoptions.inSampleSize = 4;

問題に縮小されると、下の画像です。画像は、LinearLayoutの高さに合わせてスケーリングされません。 enter image description here

私は別のscaleTypeを試しましたが、それを修正するものはありません。 この問題を解決するためのヒントをありがとう。

+0

ImageViewの – Tufan

+0

良いアイデアへの分の高さを与えることを試みるが、私は私が代わりに高さのlayout_weight使用していますので、複数の画面サイズをサポートする必要があります。 minの高さを与えることは、min heigthがすべきことの質問を掲示するでしょう。 – KasparTr

+0

分の高さはあなたの画面サイズに依存する可能性があります...デバイスの高さの幅をとり、すべての画面サイズでサポートされる2または3で割ります – Tufan

答えて

1

最後にそれをクラックしました。 レイアウトxmlを変更する必要はありませんでしたが、onCreateViewコードを変更し、setAdjustViewBounds(true)もFIT_CENTERスケールタイプを使用しました。

for (int i = 0; i < reObjectPicUrls.size(); i++) { 
     String url = reObjectPicUrls.get(i).getContent(); 
     ImageView imageView = new ImageView(getActivity()); 

     imageView.setId(i); 
     imageView.setPadding(2, 2, 2, 2); 
     new DownloadImageTask(imageView) 
       .execute(url); 
     imageView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
     imageView.setAdjustViewBounds(true); <--- THIS DID THE TRICK 
     imageView.setScaleType(ImageView.ScaleType.FIT_CENTER); 

     imageViewContainer.addView(imageView); 
} 
関連する問題