2014-01-24 3 views
-1

horizontalalscrollview를 사용하여 갤러리를 만들었습니다. imageview LinearLayout에서는 배경색을 지정했습니다. LinearLayout이 이미지의 유무에 상관없이 화면 너비에 걸쳐 있어야합니다. 내가 어떻게 할 수 있니?LinearLayout의 BackgroundColor 화면 너비

<LinearLayout 
    android:id="@+id/linear1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingBottom="5dp" 
    android:orientation="vertical"> 

    <HorizontalScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:scrollbars="none"> 

     <LinearLayout 
       android:id="@+id/linear2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:background="@color/estandar" 
       android:padding="2dp" 
      /> 
    </HorizontalScrollView> 
</LinearLayout> 

main.xml에

  LinearLayout linear2 = (LinearLayout) findViewById(R.id.linear2); 

      LayoutParams params = linear2 .getLayoutParams(); 
      params.height = 100; 
      params.width = 300; 

하지만 내 코드가 작동하지 않습니다.

편집 :

DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    int anchoPantalla = metrics.widthPixels; 

     if (listaImagenes.length > 0) { 

      for (String nombreImagen : listaImagenes) { 

       InputStream is = getAssets().open(directorioImagenes + "/" + nombreImagen); 
       final Bitmap bitmap = BitmapFactory.decodeStream(is); 

       final ImageView imageView = new ImageView(getApplicationContext()); 

       alto = bitmap.getHeight(); 
       ancho = bitmap.getWidth(); 

       final float calculo = ancho/(alto/ALTO_IMAGEN); 

      imageView.setLayoutParams(new ViewGroup.LayoutParams((int)calculo, ALTO_IMAGEN)); 

       imageView.setImageBitmap(bitmap); 
       imageView.setPadding(2, 2, 2, 2); 
       imageView.setBackgroundColor(colorResources); 

       imageView.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View view) { 

          ... 
        } 
       }); 

       linear2.addView(imageView); 
      } 

     } else { 

      // PAINT LINE WIDTHSCREEN x 120dp 
     } 
+0

당신이'fill_parent'에'아이디/linear2' 요소의'layout_width'을 변경 시도? – SparK

+0

예. fill_parent y wrap_content 동일하게 수행하십시오 – user3231711

+0

음 ... 'android : layout_width = "0dp"'and'android : layout_weight = "1"'시도하십시오. 그것이 작동하는 경우 나는 대답으로 게시 할 것입니다 – SparK

답변

0
LinearLayout galeria2 = (LinearLayout) findViewById(R.id.linear2); 

      LayoutParams params = galeria2.getLayoutParams(); 
      params.height = 100; 
      params.width = 300; 

galeria2.setLayoutParams(params); 
+0

는 수직 라인을 페인트 만합니다 1 dp – user3231711

0

당신은 동적으로 HorizontalScrollView의 각 요소에 폭을 추가해야합니다. 나는 당신의 코드를 수정했다. 잘 작동합니다. 같은

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/linear1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:paddingBottom="5dp" 
android:orientation="vertical"> 

<HorizontalScrollView 
    android:id="@+id/hsv" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:scrollbars="none"> 

    <LinearLayout 
      android:id="@+id/linear2" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" 
      android:background="#FF0040" 
      android:padding="2dp" 
     /> 
</HorizontalScrollView> 

이제 코드의 추가 요소합니다 (highlited 라인 참조)

LinearLayout galeria2 = (LinearLayout) findViewById(R.id.linear2); 

    ImageView iv1 = new ImageView(this); 
    iv1.setImageResource(R.drawable.ic_launcher); 
    **iv1.setLayoutParams(new LinearLayout.LayoutParams(
      720, LayoutParams.MATCH_PARENT));** 
    ImageView iv2 = new ImageView(this); 
    **iv2.setLayoutParams(new LinearLayout.LayoutParams(
      720, LayoutParams.MATCH_PARENT));** 

    galeria2.addView(iv1); 
    galeria2.addView(iv2); 
+0

코드는 사진과 함께 화면의 너비에서만 작동합니다. 하지만 내 이미지 크기가 조정됩니다. 내 코드를 편집하십시오. – user3231711

+0

두 번째 이미지보기 (iv2)에서 어떤 이미지도 설정하지 않습니다. 그것은 귀하의 요구 사항에 따라 이미지 뷰일뿐입니다 (LinearLayout가 이미지의 유무에 관계없이 화면 너비에 걸쳐 있기를 바랍니다). –

+0

코드를 다시 편집합니다. 내 코드에 코드를 적용 할 수 있습니까? – user3231711