마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지뷰 크기를 화면의 가로사이즈에 맞추기

0 추천
안녕하세요

 

이미지뷰 width를 match parent 하면 세로도 같이 늘어나지 않나요?? ㅠ

 

예를 들어 400x400 사이즈의 사진을 넣고 width를 match parent  로 주니까 공간만 가로 끝까지 다 차지하고 세로 길이는 늘어나지가 않네요 ..

(세로는 wrap_content 로 줬어요)

 

자바코드에서 layout param 을 이용해서 width 를 화면싸이즈만큼 줘도 변화가없네요 ㅠ

 

어떻게 해야할까요??
wnlf (830 포인트) 님이 2013년 10월 30일 질문

3개의 답변

+1 추천
 
채택된 답변

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View.MeasureSpec;
import android.widget.ImageView;

public class ScalableImageView extends ImageView {
    public boolean isMeasured = true; 

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

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

    public ScalableImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        try
        {
            Drawable drawable = getDrawable();

            if (drawable == null)
            {
                setMeasuredDimension(0, 0);
            }
            else
            {
                int width = MeasureSpec.getSize(widthMeasureSpec);
                int height = width * drawable.getIntrinsicHeight() / drawable.getIntrinsicWidth();
                setMeasuredDimension(width, height);
            }
        }
        catch (Exception e)
        {
            isMeasured = false;
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        }
    }
}

요거해봐여 적용법은아시져? 

웅바라지 (4,780 포인트) 님이 2013년 10월 30일 답변
wnlf님이 2013년 11월 2일 채택됨
+1 추천
fill_parent 는 안되나요??..
왈라뽕다 (1,170 포인트) 님이 2013년 10월 30일 답변
+1 추천
건방진프로그래머 (26,630 포인트) 님이 2013년 10월 30일 답변
...