动态创建imageview

时间:2013-11-26 17:59:13

标签: java android layout picasso

我似乎无法使这些图像视图正常工作。我不想动态创建一些图像视图,但我希望它们有一个来自xml的模板。

我的循环看起来如此:

LinearLayout layout = (LinearLayout) findViewById(R.id.mainLinearLayout);

    for (int i=0; i<10; i++){

        ImageView imgView = new ImageView(this);
        imgView.setAdjustViewBounds(true);
        imgView.setId(R.id.coverview1);
        layout.addView(imgView);
        Picasso.with(context).load("http://blah.com/image.jpg").into(imgView);

    }

我正在创建一些图像,只是在其中放置一些临时图像,但似乎无法改变图像大小。

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >


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

        <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content">
            <ImageView
                android:id="@+id/coverview1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="fitCenter"
                android:adjustViewBounds="true"
                android:maxWidth="20dp"
                android:layout_gravity="center_horizontal" />
        </RelativeLayout>
    </LinearLayout>

</ScrollView>

根据以下答案的建议,我添加了他所说的内容,但现在无法更改比例类型。

imgView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imgView.setAdjustViewBounds(true);

但是图像仍然是容器的高度而不是拉伸。

1 个答案:

答案 0 :(得分:2)

您需要为LayoutParams赞添加ChildView

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                yourCalculatedWidth, LayoutParams.FILL_PARENT);

params.gravity=Gravity.CENTER_HORIZONTAL;

imgView.setLayoutParams(params);