我有一個適配器到ListView
是ImageView
s的列表。我正在使用一段時間來使圖像變爲圖像視圖,以便我可以拍攝較小的圖像並在屏幕上使它們變大,但ImageView
通常只使用wrap_content
,這是一個問題,因爲圖像只顯示爲正常的寬度和高度。有什麼辦法可以在繪製視圖之前設置視圖的高度和寬度,因爲在這種情況下,繪製後我無法控制視圖。這裏是我的最佳方法:在繪製ListView適配器之前設置ImageView寬度和高度
@Override
public View getView(int position, View convertView, ViewGroup parent) {
String currentImage = getItem(position);
ScaleType scaleType = ScaleType.FIT_CENTER;
float screenWidth = parent.getResources().getDisplayMetrics().widthPixels;
if (convertView == null) {
convertView = new ImageView(parent.getContext());
}
// WHAT I WOULD LIKE TO BE ABLE TO DO, but this returns null pointer exception
// convertView.getLayoutParams().width = (int) screenWidth;
// convertView.getLayoutParams().height = (int) ((float)(screenWidth/currentImage.getWidth())*currentImage.getHeight());
((ImageView) convertView).setScaleType(scaleType);
((ImageView) convertView).setImageBitmap(MainActivity.cache.getBitmap(currentImage));
return convertView;
}
使用setLayoutParams。請參閱http://stackoverflow.com/a/2965807/112381。 – dannyroa