こんにちは、画像をロードするアプリケーションに取り組んでおり、各画像を可能な限り最大のサイズに拡大しようとしています。たとえば、画像が横向きの画像の場合 (幅が高さよりも大きい場合)、電話の幅を埋めるための幅と、縦横比を維持するための高さのスケーリング。高さが幅よりも大きい場合、つまり縦長の画像の場合、電話の高さに合わせて画像を拡大縮小し、縦横比を維持するために幅を調整する必要があります。これを機能させるのに少し苦労しました。これまでのところ、どんな助けも大歓迎です。
final ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setBackgroundResource(android.R.color.black);
//TODO need to get actual size of drawable not view size which is 0
ViewTreeObserver vto = i.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int w = i.getMeasuredWidth();
int h = i.getMeasuredHeight();
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
if(w <= h){
//TODO need to think about landscape
h = height - convertDpToPixel(50, context);
w = w*(width);
}else{
h = h*(height);
w = width;
}
//TODO set imageview to w and h
return true;
}
});