一、基本概念
androidmipmap是一種用於存儲不同分辨率圖片的Android資源類型。它是標籤的一個子標籤,可在AndroidManifest.xml文件的<application>標籤內指定。
與存儲在drawable文件夾內的圖片相比,存放在mipmap文件夾內的圖片會被系統更快地加載,並且可根據設備的屏幕密度來自動選擇不同分辨率的圖片。
二、使用方法
1、在Android Studio中創建項目時,會自動生成mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi文件夾。可以將對應分辨率的圖片直接拖入對應文件夾中。
├───app │ ├───src │ │ ├───main │ │ │ ├───mipmap-hdpi │ │ │ ├───mipmap-mdpi │ │ │ ├───mipmap-xhdpi │ │ │ ├───mipmap-xxhdpi │ │ │ └───mipmap-xxxhdpi
2、在AndroidManifest.xml文件的<application>標籤內指定mipmap資源。
<application ... android:icon="@mipmap/ic_launcher">
三、優勢
1、加快圖片加載速度。
也許你注意到了,可在drawable文件夾對應各種dpi目錄下增加圖片資源,實現多分辨率適配。但Android會在開啟Activity或者創建BitmapFactory對象時才加載該圖片並適配不同分辨率。相比之下,mipmap在activity啟動前就會將不同分辨率的圖片根據設備特性預加載,避免了在加載過程中的卡頓。
2、可自動根據設備的屏幕密度選擇不同分辨率的圖片。
Android將設備根據屏幕密度劃分為五種,分別是mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi。而五種密度下對應的mipmap文件夾也互不相同。因此,我們只需在mipmap文件夾下放入不同分辨率的圖片即可,Android系統會在運行時自動根據屏幕密度選擇合適的圖片。
四、注意事項
1、圖標資源必須在mipmap目錄下,否則發佈應用時會遇到警告。
2、mipmap只是提供了比drawable更為快速高效的加載和自適應方法,在不必要使用高分辨率圖片時應該盡量避免使用。因為高分辨率的圖片會佔用更多的內存空間,不僅會拖慢應用的運行速度,還容易導致內存溢出。
五、示例代碼
├───app │ ├───src │ │ ├───main │ │ │ ├───mipmap-hdpi │ │ │ │ ic_launcher.png │ │ │ ├───mipmap-mdpi │ │ │ ├───mipmap-xhdpi │ │ │ ├───mipmap-xxhdpi │ │ │ └───mipmap-xxxhdpi │ │ │ ├───AndroidManifest.xml │ │ │ └───java │ │ │ └───com │ │ │ └───example │ │ │ └───myapplication │ │ │ └───MainActivity.java
MainActivity.java中的代碼如下:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
AndroidManifest.xml中的代碼如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyApplication"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
原創文章,作者:UGNAX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/332119.html