我有一个可折叠的工具栏,我想在后台设置图像,我使用Image Loader库来提高性能,即使图像看起来很慢。
这是我的xml for toolbar
<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 :(得分:2)
如果从远程服务器加载图像,并且分辨率非常高,则可能会影响某些设备的性能。
以下建议:您以高分辨率将图像上传到服务器(这将被视为xxhdpi或xxxhdpi),然后您可以拥有一个服务器脚本,可自动为剩余密度创建缩放图像(mdpi,hdpi和xhdpi)。
当您从应用程序上的服务器获取图像时,您只需要获取设备的屏幕密度,并将其作为GET / POST变量发送到服务器,以便它可以响应正确分辨率的图像。
要获得设备的屏幕密度,请使用以下代码:
getResources().getDisplayMetrics().density;
这些是android使用的缩放比例:
0.75 - ldpi
1.0 - mdpi
1.5 - hdpi
2.0 - xhdpi
3.0 - xxhdpi
4.0 - xxxhdpi
TL; DR:获取设备的屏幕密度,将其作为GET / POST变量发送到服务器,让服务器以正确的图像响应该密度。 / p>