显示drawable与imageView的大小完全相同,以用作占位符

时间:2015-07-12 18:42:19

标签: android android-layout android-imageview android-image

我检查过的朋友get drawable exactly the size of the imageView to use as a placeholder

但它没有帮助我

我的问题是我想要显示完全符合图像尺寸的占位符

图像大小是动态的,我从服务器获取图像高度和宽度,使用我计算调整后的宽度和高度

例如,在一行列表中,我必须显示400 * 300大小的图像,而在另一行中,我必须显示700 * 500大小的图像

现在我希望占位符在第一种情况下填充区域400 * 300,在第二种情况下填充700 * 500,这是我无法实现的,

我怎样才能做到这一点?

mDisplayImageOptions = new DisplayImageOptions.Builder()
                .resetViewBeforeLoading(true)
                .imageScaleType(ImageScaleType.EXACTLY)
                .showImageOnLoading(R.drawable.test_user)
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .build();



    mAdjustedWidth = mWindowWidth - 10;
            mAdjustedHeight = 400;
            try {
                int width = cursor.getInt(cursor.getColumnIndexOrThrow(TalkTable.TALK_TWIDTH));
                if(width > 0) {
                    mAdjustedHeight = (mAdjustedWidth * cursor.getInt(cursor.getColumnIndexOrThrow(TalkTable.TALK_THEIGHT))) / width;
                }
            }catch (Exception ex){
                ex.printStackTrace();
            }
            talkImageView.getLayoutParams().height = mAdjustedHeight;
            talkImageView.getLayoutParams().width = mAdjustedWidth;
            talkImageView.requestLayout();

 mImageLoader.displayImage(talkImageThumbnil,talkImageView,mTalksDisplayImageOptions,new SimpleImageLoadingListener(){
                @Override
                public void onLoadingStarted(String imageUri, View view) {
                    // ProgressBar progressBar1 = (ProgressBar)progressBar.getTag();
                    //progressBar1.setVisibility(View.VISIBLE);
                    talkImageView.getLayoutParams().height = mAdjustedHeight;
                    talkImageView.getLayoutParams().width = mAdjustedWidth;
                    talkImageView.requestLayout();
                    talkImageView.setImageResource(R.drawable.image_place_holder);
                    Log.d(TAG, " Progress bar  visisble ");
                }

                @Override
                public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
                    //ProgressBar progressBar1 = (ProgressBar)progressBar.getTag();
                    //progressBar1.setVisibility(View.GONE);
                }

                @Override
                public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
                    //ProgressBar progressBar1 = (ProgressBar)progressBar.getTag();
                    //progressBar1.setVisibility(View.GONE);
                }

                @Override
                public void onLoadingCancelled(String imageUri, View view) {
                    //ProgressBar progressBar1 = (ProgressBar)progressBar.getTag();
                    //progressBar1.setVisibility(View.GONE);
                }

            });

XML图像视图

我几天都在为此奋斗,请帮帮我

在图像下载之前,占位符看起来像这样

enter image description here

图像下载后,它看起来像下面的图像

enter image description here

我希望占位符应该填充将要显示的图像的确切高度和宽度

1 个答案:

答案 0 :(得分:0)

将ImageView的比例类型设置为fitCenter?