public DrawerProfile(Context context) {
super(context);
HeaderImageView = new ImageView(context);
HeaderImageView.setVisibility(VISIBLE);
HeaderImageView.setScaleType(ImageView.ScaleType.CENTER);
HeaderImageView.setImageResource(R.mipmap.drawer_background_image);
addView(HeaderImageView);
}
我想在抽屉中添加一张图片,它应该覆盖抽屉标题的整个区域。我想知道图像(分辨率)的大小应该是多少;这将适用于各种屏幕分辨率的每部手机。如何最小化照片的尺寸?
在此屏幕截图中,标题图像未覆盖抽屉的整个区域
最佳答案
我最近做了一个应用程序,并且对 Material 设计的几乎每个方面都进行了深入研究,所以我想在这里分享我的经验,它可能会对你有所帮助。
第一次通过 this精彩的文章,它将指导您设置 Nav Drawer 及其使用的每个属性和 View 。
抽屉图像应该或通常是抽屉导航宽度的 16/9。 ( HeaderHeight = NavDrawerWidth * 9/16 )
我使用了一张 576x324 像素的图像(非常干净漂亮的图片,将近 27KB)并将其放在 drawable-nodpi 中以避免自动缩放和内存问题。
我使用宽度为 304dp 的抽屉导航(大多数情况下你会在谷歌应用程序上找到它,但他们也在一些应用程序上使用了 320dp,比如 Play Music、Hangouts 等)。
对于除平板电脑之外的几乎所有设备,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>
希望这对某人有帮助。
关于android - 抽屉标题图像的大小应该是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924541/