如何更改以编程方式添加的图像大小

时间:2017-01-31 08:28:12

标签: java android

我有一个LinearLayout,当我点击一个按钮时,我会添加图片,我试图使用LayoutParams更改宽度和高度,因为它不适合应用,而我总是得到一个空引用,问题是我无法进行任何引用,因为它不是静态的ImageView

这就是我在LinearLayout中添加图片的方式:

public void AddNewImages(Context context,Bitmap bitmap){
    ImageView img = new ImageView(context);
    img.setScaleType(ImageView.ScaleType.FIT_XY);
    img.setImageBitmap(bitmap);
    linearImages.addView(img);
    bitmapArray.add(bitmap);
    indexTags++;
}

XML:

<LinearLayout
    android:orientation="vertical"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <HorizontalScrollView
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="horizontal"
            android:id="@+id/linearImages"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <Button
                android:layout_gravity="center"
                android:id="@+id/add_btn"
                android:text="Add"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </HorizontalScrollView>

3 个答案:

答案 0 :(得分:1)

首先,你必须找到你在linearlayout中添加的Imageview并设置大小 即

for(int i=0;i<linearImages.getChildCount();i++)
{
    ImageView image=(ImageView)linearImages.getChildAt(i);
    image.getLayoutParams().height=100;
    image.getLayoutParams().width=100;
}

答案 1 :(得分:0)

ImageView imgae = (ImageView) linearImages.getChildAt(0); // For first image

然后设置LayoutParam

答案 2 :(得分:0)

您正在动态创建ImageView,因此您必须先为其设置layoutParameters,然后才能设置imageview的高度和宽度。请参阅此NullPointerException while setting LayoutParams问题