Volley没有正确调整图像大小

时间:2014-09-04 01:10:05

标签: android youtube-api android-volley

我在youtube上使用了一个服务,它返回了一个URL。有了这个URL,我就进行了一次NetworkImageView。问题是图像不占用我定义字段NetworkImageView

的所有空间

我的网址

https://i.ytimg.com/vi/2HA41DV_K7s/hqdefault.jpg

XML

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <com.android.volley.toolbox.NetworkImageView
            android:id="@+id/banner_channel"
            android:layout_width="120dp"
            android:layout_height="90dp"
            android:scaleType="centerCrop"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="10dp" />
</LinearLayout>

在我的适配器

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        Context ctx = parent.getContext();
        if (convertView == null) {
            convertView = LayoutInflater.from(ctx).inflate(LAYOUT, null);
        }
        NetworkImageView img = (NetworkImageView) convertView.findViewById(R.id.banner_channel);


        img.setImageUrl(mVideoList.items.get(position).snippet.thumbnails.high.url, VolleySingleton.getInstance(
                ctx).getImageLoader());
        img.setDefaultImageResId(R.drawable.channel_thumb_default);

        return convertView;
    }

类缓存

/**
 * Created by Douglas on 24/08/2014.
 */
public class VolleySingleton {

    private static VolleySingleton mInstance = null;
    // Fila de execução
    private RequestQueue mRequestQueue;
    // Image Loader
    private ImageLoader mImageLoader;

    private VolleySingleton(Context context) {
        mRequestQueue = Volley.newRequestQueue(context);
        mImageLoader = new ImageLoader(this.mRequestQueue, new ImageLoader.ImageCache() {
            private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(10);

            public void putBitmap(String url, Bitmap bitmap) {
                mCache.put(url, bitmap);
            }

            public Bitmap getBitmap(String url) {
                return mCache.get(url);
            }
        });
    }

    public static VolleySingleton getInstance(
            Context context) {

        if (mInstance == null) {
            mInstance = new VolleySingleton(context);
        }
        return mInstance;
    }

    public RequestQueue getRequestQueue() {
        return this.mRequestQueue;
    }

    public ImageLoader getImageLoader() {
        return this.mImageLoader;
    }
}

我的清单图片

http://i.imgur.com/gsEkt9R.png

1 个答案:

答案 0 :(得分:1)

工作正常。信箱效果(顶部和底部的黑条)是您正在获取的图像的一部分。

编辑:

使用原始图像创建位图但没有黑条,请使用

Bitmap android.graphics.Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height)

,其中

source - 带黑条的原始位图

x - 源

中第一个像素的x坐标

y - 源

中第一个像素的y坐标

width - 每行中的像素数

height - 行数