使用9个补丁占位符时,滑动调整加载到imageview的图像的大小

时间:2016-03-02 22:58:52

标签: android android-imageview nine-patch android-glide

我正在尝试使用Glide库加载位图时将9补丁图像实现为ImageView的占位符。

当我尝试使用 9-patch image 作为占位符时,实际图片会调整为较小尺寸并加载到ImageView。如果我使用常规图片作为占位符,则此问题不存在,并且加载的图片将填充整个ImageView

你能告诉我这里我做错了什么吗?

Glide.with(getContext())
.load(imagePath)
.centerCrop()
.placeholder(R.drawable.my_9_patch_image)
.into(imageView);

编辑:添加布局代码

public class MyLayout extends RelativeLayout{

    private ImageView imageView;

     public MyLayout(Context context) {
        super(context);
    }

    public MyLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public void setPictures(ArrayList<String> listPicturePaths){
        this.setGravity(Gravity.CENTER);
        setupImageView();
        setPicture(0);
    }

    private void setupImageView(){

        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        this.imageView = new ImageView(getContext());
        this.imageView.setLayoutParams(params);
        this.addView(imageView);
    }

    private void setPicture(int index){
        Glide.with(getContext()).load(mListPicturePaths.get(index)).centerCrop().placeholder(R.drawable.my_9_patch_image)
                .into(imageView);
    }

}

sample screen

1 个答案:

答案 0 :(得分:0)

你没有做错任何事; Glide在下载之前不知道图像的大小,因此它不知道显示占位符的大小。

如果您知道尺寸或宽高比,则需要指定imageView的宽度和/或高度。