2016-07-08 4 views
0

У меня есть сворачиваемая панель инструментов, где я хочу установить изображение на фоне, я использую библиотеку Image Loader для повышения производительности, даже если изображение появляется очень медленно.Идеальный размер изображения для панели инструментов?

вот мой XML для инструментов

<android.support.design.widget.CollapsingToolbarLayout 
    android:id="@+id/ctl_scene_list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

    <ImageView 
      android:id="@+id/iv_production_image" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:adjustViewBounds="true" 
      android:background="@drawable/ph_production_profile_pic" 
      android:fitsSystemWindows="true" 
      android:scaleType="centerCrop" 
      android:src="@color/silver_chalice_approx" 
      app:layout_collapseMode="none" /> 

      <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/black_40_alpha" 
       app:layout_collapseMode="pin" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

      <include layout="@layout/toolbar" /> 
      </android.support.v7.widget.Toolbar> 
</android.support.design.widget.CollapsingToolbarLayout> 

Я хочу использовать одно изображение для всех типов разрешений, это рекомендуется использовать изображения на основе резолюции и проверить разрешение в коде, и что должно быть идеальным размер изображения при загрузке на сервере?

+0

Какое разрешение изображения? Если он слишком высок, это может не понадобиться, потому что оно отображается на мобильном телефоне, и это может увеличить время, необходимое для его загрузки. – Vucko

+0

Разрешение 1440 * 1080 и размер 100 KB –

+0

Это очень высокое разрешение, есть ли способ, которым вы можете его масштабировать? – Vucko

ответ

2

Если изображения загружаются с удаленного сервера, а разрешение очень велико, это может повлиять на производительность на некоторых устройствах.

Вот предложение: вы загружаете изображение на сервер с высоким разрешением (это будет считаться xxhdpi или xxxhdpi), и тогда у вас может быть сценарий сервера, который автоматически создает масштабированные изображения для остальных плотностей (mdpi , hdpi и xhdpi).

При получении изображений с сервера на вашем приложении вам просто нужно получить плотность экрана устройства и отправить его на сервер как переменную GET/POST, чтобы она отвечала изображением в правильное разрешение.

Чтобы получить плотность экрана устройства, используйте этот код:

getResources().getDisplayMetrics().density; 

Они являются отношения масштабирования андроида использует:

0,75 - ldpi

1,0 - MDPI

1,5 - hdpi

2.0 - xhdpi

3,0 - xxhdpi

4,0 - xxxhdpi

TL; DR: Получите плотность экрана устройства, отправить его на сервер в качестве переменной GET/POST, и есть ответ сервера с правом изображение для этой плотности.

Смежные вопросы