填写服务器图像到NetworkImageview没有拉伸它的android

时间:2016-02-26 06:11:33

标签: android layout imageview android-volley

我有什么

我有ImageUri来自服务器,&我将其设置为我的NetworkImageview 排球图书馆

我想要什么

我希望图片占据width& height NetworkImageview(想要类似于facebook)

我的问题

我看到width NetworkImageview的{​​{1}}左侧colour

我的代码

xml layout

<RelativeLayout
        android:id="@+id/relative_profile_hotot"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:layout_below="@+id/relative_profile_header"
        android:padding="0dp">

        <com.android.volley.toolbox.NetworkImageView
            android:id="@+id/img_post_photo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:scaleType="center"
            android:src="@drawable/image_palce" />

        <RelativeLayout
            android:id="@+id/relative_profile_footer"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentBottom="true"
            android:background="@color/profile_footer_bg">

            <TextView
                android:id="@+id/tv_profile_photo_location"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:drawableLeft="@drawable/ic_home_place"
                android:drawablePadding="5dp"
                android:paddingLeft="5dp"
                android:paddingTop="5dp"
                android:textColor="@color/grey_dark"
                android:textSize="@dimen/txt_small"
                tools:text="Paris France" />

            <TextView
                android:id="@+id/tv_profile_photo_description"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/tv_profile_photo_location"
                android:layout_marginLeft="20dp"
                android:ems="40"
                android:padding="2dp"
                android:singleLine="true"
                android:textColor="@color/grey_light"
                android:textSize="@dimen/txt_very_small"
                tools:text="Effel Tower,...Read more" />
            />


            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/img_foot"
                android:src="@drawable/ic_home_footstep_color"
                android:padding="5dp"
                android:layout_alignParentTop="true"
                android:layout_toEndOf="@+id/tv_profile_comment" />

            <TextView
                android:id="@+id/tv_profile_foot"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="10dp"
                android:paddingTop="0dp"
                android:textColor="@color/grey_light"
                android:textSize="@dimen/txt_small"
                tools:text="150"
                android:layout_alignBottom="@+id/tv_profile_photo_description"
                android:layout_alignEnd="@+id/tv_profile_photo_description" />
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/img_cheers"
                android:src="@drawable/ic_home_cheers_color"
                android:padding="5dp"
                android:layout_alignParentTop="true"
                android:layout_toStartOf="@+id/img_comment"
                android:layout_marginEnd="14dp" />


            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/img_comment"
                android:src="@drawable/ic_home_coments"
                android:padding="5dp"
                android:layout_alignParentTop="true"
                android:layout_alignStart="@+id/tv_profile_comment" />

            <TextView
                android:id="@+id/tv_profile_comment"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingRight="10dp"
                android:paddingTop="0dp"
                android:textColor="@color/grey_light"
                android:textSize="@dimen/txt_small"
                tools:text="264"
                android:layout_alignBottom="@+id/tv_profile_photo_description"
                android:layout_toStartOf="@+id/tv_profile_foot" />


            <TextView
                android:id="@+id/tv_profile_cheers"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:paddingRight="10dp"
                android:paddingTop="0dp"
                android:textColor="@color/grey_light"
                android:textSize="@dimen/txt_small"
                tools:text="3164"
                android:layout_alignBottom="@+id/tv_profile_photo_description"
                android:layout_toStartOf="@+id/img_comment" />

        </RelativeLayout>

    </RelativeLayout>

Adapter.java

myBucketListViewHolder.imgPostPic.setImageUrl(model.Uri, imageLoader);
        myBucketListViewHolder.imgPostPic.setDefaultImageResId(R.drawable.im_default_cover);

屏幕截图:(

enter image description here

2 个答案:

答案 0 :(得分:2)

替换

android:scaleType="center"

android:scaleType="centerCrop"
在您的NetworkImageView

答案 1 :(得分:0)

同样的事情发生在我身上使用NetworkImageView问题是它的行为与ImageView略有不同,当屏幕密度大于图像宽度时,android: scaleType = "centerCrop"填充宽度不够想要插入。 尝试使用此代码,在运行时更改图像的宽度,将其调整为屏幕密度。

在layout.xml中

<com.android.volley.toolbox.NetworkImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:scaleType="fitCenter"
        android:background="@android:color/transparent"
        android:id="@+id/imagePagerView"/>

在你的活动中(我有适配器)

    Display display = ((Activity) context).getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);
    float scWidth = outMetrics.widthPixels;
    float scHeigh = outMetrics.heightPixels;
    mImageView.getLayoutParams().width = (int) scWidth;
    mImageView.getLayoutParams().height = (int) scHeigh;