水平滚动视图中的自由空间

时间:2016-02-15 16:28:32

标签: java android android-layout

我的水平滚动视图中有一个线性布局,我想在其中动态显示图像。这是我的代码:

if (imgs.size() != 0) {
    for (int i = 0; i < imgs.size(); i++) {
        File imgFile = new File(Environment.getExternalStorageDirectory() 
                              + "/shafa/" 
                              + imgs.get(i)
                                    .replace(" ", "+")
                                    .replace(".jpg", "")
                                    .replace(".JPG", "")
                                    .replace(".png", ""));
        if (imgFile.exists()) {
            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                                               ViewGroup.LayoutParams.MATCH_PARENT, 
                                               ViewGroup.LayoutParams.MATCH_PARENT);
            textview9.setVisibility(View.GONE);
            Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
            ImageView image = new ImageView(DrugActivity.this);
            image.setImageBitmap(myBitmap);
            imgslayout.addView(image);
            imgslayout.setGravity(0);
            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                image.setElevation(15);
            }
            image.setLayoutParams(lp);
            image.requestLayout();
        }
    }
}

布局代码:

<HorizontalScrollView
    android:id="@+id/horizontalScrollView"
    android:layout_width="match_parent"
    android:layout_height="220dp"
    android:background="@color/blue"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/imgslayout"
        android:padding="10dp">
    </LinearLayout>
</HorizontalScrollView>

这就是结果:

enter image description here

我不希望滚动视图中的可用空间

1 个答案:

答案 0 :(得分:0)

您要将滚动视图高度设置为220dp,但设置ImageView image高度&amp;宽度为MATCH_PARENT
Android默认保持ImageView宽高比,因此它填充高度但不能填充宽度,因此可以填充空闲空间 您可以使用setBackground(但不能直接使用Bitmap)或删除高度限制,或设置image.setScaleType(ImageView.ScaleType.FIT_XY);(这将拉伸图像)