android - 抽屉标题图像的大小应该是多少?

标签 android android-layout navigation-drawer drawerlayout image-size

 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);
}

我想在抽屉中添加一张图片,它应该覆盖抽屉标题的整个区域。我想知道图像(分辨率)的大小应该是多少;这将适用于各种屏幕分辨率的每部手机。如何最小化照片的尺寸?

在此屏幕截图中,标题图像未覆盖抽屉的整个区域

enter image description here

最佳答案

我最近做了一个应用程序,并且对 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>

enter image description here

希望这对某人有帮助。

关于android - 抽屉标题图像的大小应该是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924541/

相关文章:

java - textinputlayout 密码切换图标被阻止

android - 如何制作默认的Android加载器动画?

android - fragment 事务加载空 View 但 fragment 在旋转设备后显示

android - 如何将菜单项动态添加到抽屉导航?

android - 从 Activity 调用服务方法

android - (Android) 在静态最终常量中保存资源是否安全? (现在资源不是静态最终的)

android - 在协调器布局中带有 anchor 的 FAB 在 android pre-lollipop 中有额外的边距

android - 如何制作一个深度 fragment 以在屏幕上使用喷气背包导航和 BottomNavigationView 占据整个屏幕?

android - 如何从普通链接 <a> 调用 native Android map 应用程序?

android - 更新 CheckBox 项的 ListView 时,是更新单个 View 更好,还是更新 notifyDataSetChanged() 和 invalidateViews()?