나는 최근에 응용 프로그램을 만들었고 거의 모든 재료 디자인 측면에 대한 철저한 연구를 수행 했으므로 여기에서 나의 경험을 공유하고 싶습니다. 도움이 될 것입니다.
첫 번째로 이동 this 멋진 기사, 그것을 사용하면 모든 속성과보기와 함께 사용하는 탐색기를 설정 안내합니다.
서랍 이미지는 너비가 너비의 16/9 또는 보통 여야합니다. (HeaderHeight = NavDrawerWidth * 9/16)
나는 576x324 픽셀 (아주 깨끗하고 좋은 그림, 거의 27킬로바이트)의 이미지를 사용하고 자동 확장 및 메모리 문제를 방지하기 위해 당김-nodpi 안에 넣어.
폭이 304dp 인 nav Drawer를 사용합니다 (대부분 Google Apps에서 찾을 수 있지만 Play 뮤직, 행 아웃 등 일부 앱에서도 320dp를 사용했습니다).
HeaderImage의 높이는 태블릿을 제외한 거의 모든 기기에서 동일하게 유지됩니다.
기기의 경우 sw-480dp-xxxhdpi
까지 서랍 너비 304dp 및 헤더 높이 170dp를 사용하십시오.
위의 sw-600dp
장치에서 최소한 드로어 너비 400dp 및 헤더 이미지 높이 225dp를 사용하십시오.
이것은 내 drawer_header입니다.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/navDrawer_header_height"
android:background="@drawable/img_navdrawer_header"
android:gravity="bottom"
android:orientation="vertical"
android:padding="16dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark" >
</LinearLayout>
그리고 이것이 내가 그들의 경계를 설정하는 NavigationView
이제
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="@dimen/nav_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/drawer_header"
app:menu="@menu/drawer" />
시간 안에 그것을 사용했던 방법이다, 태블릿 /res/values/dimens/
<dimen name="nav_drawer_width">304dp</dimen>
<dimen name="navDrawer_header_height">170dp</dimen>
: /res/values-sw600dp/
, /res/values/sw-720dp
<dimen name="nav_drawer_width">400dp</dimen>
<dimen name="navDrawer_header_height">225dp</dimen>
희망이 있으면 도움이 될 것입니다.
, 나는 XML을 사용하지 않고있다. 어떻게하면 자바에서 동일한 작업을 수행 할 수 있습니까? –
HeaderViewImage 클래스의 메커니즘이 무엇인지 모르겠다.이 클래스가 HeaderViewImage.setBounds (0,0, px의 폭, px의 높이)를 지원하면 이처럼 값을 넣을 수있다. –
매우 훌륭하지만 gmail/inbox/다른 Google 앱과 비교하면 서랍의 너비가 304dp가 아닌 것을 볼 수 있습니다. 내 넥서스 5x로 테스트 됨 –