2014-01-24 34 views
-1

我用horizo​​ntalscrollview创建了一个图库。在imageview LinearLayout中我已经放置了一个彩色背景。我希望LinearLayout横跨屏幕的宽度,不管有没有图像。我该怎么办?BackgroundColor在屏幕宽度的LinearLayout中

<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

你试图改变你的'ID/linear2'元素的'layout_width'为'fill_parent'? – SparK

+0

是的。 fill_parent y wrap_content执行相同的操作 – user3231711

+0

hmm ...尝试'android:layout_width =“0dp”'和'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

你必须动态地添加宽度Horizo​​ntalScrollView的每个元素。我已经修改你的代码看一看。它的工作正常。

<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> 

现在的代码添加元素等(参见反白标明线)

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