【发布时间】:2015-07-12 18:42:19
【问题描述】:
我检查过的朋友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 图像视图
我一直在为此苦苦挣扎,请帮助我
图片下载前占位符是这样的
图片下载后如下图所示
我希望占位符填充即将显示的图像的确切高度和宽度
【问题讨论】:
-
“我的问题是我想显示一个完全符合图像大小的占位符”什么图像大小?你到底有什么问题?
-
@psink 图像大小是动态的,它可以是任何大小的服务器向我发送大小,我计算它并相应地调整高度
-
高度是多少?发布一些描述您的问题的图片?
-
@psink 我已经编辑了问题并添加了用例,请看一下
-
试过 android:adjustViewBounds 吗?
标签: android android-layout android-imageview android-image