공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
안드로이드에서 Toolbar에 이미지뷰를 넣을 때 항상 고민을 했었습니다.
모든 디바이스에서 비율이 같게 나오게 하려면
android:layout_width="48dp"
android:layout_height="48dp"
처럼 고정값이 아니라 툴바 높이에 맞춰서 이미지 뷰의 height이 결정되고
그 결정된 height에 따라 width 결정되야하는데
어떻게 해여하지?
그러다 선택한 방법은
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
}
여기서 toolbar의 높이를 구해서 ImageView의 width와 height를 결정해주는
방법이었는데요. 굉장히 비효율적이라는 생각이 문득 들어서
찾아보니 xml에서 간단한게 설정할 수 있었습니다.
먼저 Toolbar의 높이를
<android.support.v7.widget.Toolbar
android:elevation="4dp"
android:gravity="end"
android:background="@android:color/white"
android:id="@+id/menuBar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:contentInsetStart="16dp"
app:contentInsetEnd="0dp">
?android:attr/actionBarSize 로 정해줍니다.
그리고 ImageView의 높이를 match_parent로 줘서 툴바높이와 같게 맞추고
width는 그냥 wrap_content로 줍니다.
그리고 여기서 속성을 하나 더 추가하면 되는데요.
android:adjustViewBounds="true"
바로 위 속성입니다. 위 속성을 추가해주면 이미지뷰에서 알아서
height 와 같게 width 값을 조정합니다.
만약 반대로 width의 길이에 맞게 height를 조정하고 싶다면
android:layout_width="match_parent"
android:layout_height="wrap_content" 를주고
android:adjustViewBounds="true"
를 추가해주면 됩니다.
이상입니다. 감사합니다.
다음 포스팅에서는
Camera2 api 에 대해 포스팅합니다.
'안드로이드' 카테고리의 다른 글
안드로이드 프로가드 적용 방법과 에러 발생 시 해결 방법 android studio apply proguard (0) | 2019.01.03 |
---|---|
안드로이드 이미지, 동영상 동적 삭제 File delete(), exists(), how to delete file(image, video) dynamically (0) | 2018.12.28 |
안드로이드 갤러리에 저장된 동영상 목록 불러오기, 불러온 동영상 재생하기 (1) | 2018.12.20 |
안드로이드 TextView Shadow 그림자 넣기 추가하기 (0) | 2018.12.14 |
안드로이드 RecyclerView.Decoration , recyclerView item 간격 설정 (0) | 2018.12.14 |