1. 程式人生 > >Android中的圖片(drawable目錄;drawable和mipmap的區別)

Android中的圖片(drawable目錄;drawable和mipmap的區別)

原創文章:轉載請標明轉載地址。

不管是在Eclipse還是在Android studio,存放圖片的都有drawable目錄,當然Android studio還有mipmap目錄,首先介紹drawable的區別,然後在介紹drawable和mipmap的區別

drawable資料夾

我們使用Eclipse建立新專案時,它會幫助我們自動生成六個資料夾(密度不同):

  • drawable-ldpi (low:120dip)
  • drawable
  • drawable-mdpi (medium:160dip)
  • drawable-hdpi (high :240dip)
  • drawable-xhdpi (xhigh :320dip)
  • drawable-xxhdpi (xxhigh:480dip)

一般的做法是,將圖片等資源放在drawable-hdip中,將一些和XML檔案相關的內容(圖片選擇器、文字顏色選擇器、自定義形狀等)放在drawable中。

Google推薦:畫素使用dip,文字使用sp。

在mdip資料夾,1dip=1px。

關於dp,dip,sp,pt,px的區別,可參考:附錄一

關於圖片在不同目錄下的顯示舉例,可參考:附錄二

drawable和mipmap的區別

在Android studio中,同時存在drawable目錄和mipmap目錄,二者沒有明顯區別,但是工作機制還是存在差別。

谷歌官方:
drawable/
For bitmap files (PNG, JPEG, or GIF), 9-Patch image files, and XML files that describe Drawable shapes or Drawable objects that contain multiple states (normal, pressed, or focused). See the Drawable resource type.
mipmap/
For app launcher icons. The Android system retains the resources in this folder (and density-specific folders such as mipmap-xxxhdpi) regardless of the screen resolution of the device where your app is installed. This behavior allows launcher apps to pick the best resolution icon for your app to display on the home screen. For more information about using the mipmap folders, see Managing Launcher Icons as mipmap Resources.

谷歌官方沒有推薦圖片放在mipmap中!!!

谷歌官方沒有推薦圖片放在mipmap中!!!

谷歌官方沒有推薦圖片放在mipmap中!!!

官方解釋:
mipmap——用於存放原生圖片(圖ic_launcher.png),縮放上有效能優化;
drawable——存放圖片、xml,和Eclipse沒有區別;

附錄一

dip : device independent pixels(裝置獨立畫素). 不同裝置有不同的顯示效果,這個和裝置硬體有關,一般我們為了支援WVGA、HVGA和QVGA 推薦使用這個,不依賴畫素。

dp : 和dip相同。

px : pixels(畫素),一個畫素通常被視為影象的最小的完整取樣,不同裝置顯示效果相同,一般我們HVGA代表320x480畫素,這個用的比較多。

pt : point,是一個標準的長度單位,1pt=1/72英寸,用於印刷業,非常簡單易用。

sp : scaled pixels(放大畫素). 主要用於字型顯示best for textsize。

in(英寸):長度單位。

解析度 :分為顯示解析度(螢幕解析度)影象解析度

顯示解析度:螢幕影象的精密度,是指顯示器所能顯示的畫素有多少。顯示器可 顯示的畫素越多,畫面就越精細。顯示解析度一定的情況下,顯示屏越小影象越清晰,反之,顯示屏大小固定時,顯示解析度越高影象越清晰。

圖象解析度 :單位英寸中所包含的畫素點數。

換算公式

public static float applyDimension(int unit, float value,
   DisplayMetrics metrics){
  switch (unit) {
     case COMPLEX_UNIT_PX:
         return value;
     case COMPLEX_UNIT_DIP:
         return value * metrics.density;
     case COMPLEX_UNIT_SP:
         return value * metrics.scaledDensity;
     case COMPLEX_UNIT_PT:
         return value * metrics.xdpi * (1.0f/72);
     case COMPLEX_UNIT_IN:
         return value * metrics.xdpi;
     case COMPLEX_UNIT_MM:
         return value * metrics.xdpi * (1.0f/25.4f);
     }
   return 0;
}

附錄二

mdpi與hdpi是2:3的關係
mdpi與xhdpi是1:2的關係
ldpi 與mdpi是3:4的關係

dp與px換算公式:

pixs =dips * (densityDpi/160).

dips=(pixs*160)/densityDpi

現在假設,在一個專案中,你將一張60px*60px的圖片放到mdpi中,它的大小是60*60;

若把它拿到hdpi中,那麼它的大小應該是40*40,圖片縮小。

相關推薦

Android圖片drawable目錄drawablemipmap區別

原創文章:轉載請標明轉載地址。 不管是在Eclipse還是在Android studio,存放圖片的都有drawable目錄,當然Android studio還有mipmap目錄,首先介紹drawable的區別,然後在介紹drawable和mipmap的區別

關於Android圖片大小、記憶體佔用與drawable資料夾關係的研究與分析

研究內容研究方法測試環境研究過程結果分析結論 研究內容 本篇內容主要探討以下場景:同一張圖片,放置在不同的drawable資料夾,在同一裝置上執行,對圖片大小及記憶體佔用有什麼影響。 研究方法 控制變數法分析法 測試環境 採用錘子T1手機(1080*

android如何獲取指定目錄下的圖片

圖片文件 tor 註意 plain mage 限制 asto tco 語句 需要對指定目錄的圖片文件進行列表,借鑒了網上的方法,發現列表出來是所有的文件,這樣用起來很不方便,在這裏也沒找到解決的辦法,經過自己的進一步研究終於搞定,發上來給有用的同學。用下面這種方式能實現查詢

android圖片的三級cache策略記憶體 檔案 網路

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android圖片壓縮分析

一、前言 在 Android 中進行圖片壓縮是非常常見的開發場景,主要的壓縮方法有兩種:其一是質量壓縮,其二是下采樣壓縮。 前者是在不改變圖片尺寸的情況下,改變圖片的儲存體積,而後者則是降低影象尺寸,達到相同目的。 由於本文的篇幅問題,分為上下兩篇釋出

Android圖片壓縮分析

一、Android 尺寸壓縮邏輯 針對圖片尺寸的修改其實就是一個影象重新取樣的過程,放大影象稱為上取樣(upsamping),縮小影象稱為下采樣(downsampling),這裡我們重點討論下采樣。 在 Android 中圖片重取樣提供了兩種方法,一種叫

Android 圖片壓縮分析

歡迎大家前往騰訊雲社群,獲取更多騰訊海量技術實踐乾貨哦~ 作者: shawnzhao 一、前言 在 Android 中進行圖片壓縮是非常常見的開發場景,主要的壓縮方法有兩種:其一是質量壓縮,其二是下采樣壓縮。 前者是在不改變圖片尺寸的情況下,

android圖片的三級cache策略記憶體、檔案、網路之二:記憶體快取策略

前言 記得很久之前我寫了一篇banner的文章,好多朋友找我要程式碼,並要我開放banner中使用的圖片管理工廠-ImageManager。如果想很好地理解下面的故事,請參看我半年前寫的兩篇博文:android中圖片的三級cache策略(記憶體、檔案、網路) 一 和 an

Android圖片的三級緩存策略

getitem 圖片顯示 current sco clas 實例 ase activit fileinput 一、簡單介紹 如今的Android應用程序中。不可避免

Android 的一些特殊目錄與文件

mtd 安裝文件 df -h card 端口號 car 路徑 文件中 name 用作命令的二進制文件位於/system/bin/與/system/xbin/下 應用數據位於/data/data/, 原始安裝文件位於/data/app/(Play商店中非免費應用位於/data

Android圖片優化之WebP使用

一、什麼是 WebP? WebP(發音 weppy,專案主頁),是一種支援有失真壓縮和無失真壓縮的圖片檔案格式,派生自影象編碼格式 VP8。根據 Google 的測試,無失真壓縮後的 WebP 比 PNG 檔案少了 45% 的檔案大小,即使這些 PNG 檔案經過其他壓縮工具壓縮之後,WebP 還

Android圖片的淡入

Android中活動中圖片的淡入 我是一個計 算機小白,也許這樣就更能理解小白的心情,我想大神都是從這個階段過來的,這幾天想做一個手機桌布類的應用,剛開始做歡迎頁,想在歡迎頁加入一個淡入圖片,也許效果會很好,以前是學過的,可是學過的東西不一定都能刻在腦子裡,上網上查查資料,發現有很多大神

Android圖片佔用記憶體的計算

本人的網易部落格原文 在Android開發中,我現在發現很多人還不會對圖片佔用記憶體進行很好的計算。因此撰寫該博文來做介紹,期望達到拋磚引玉的作用。   Android中一張圖片(BitMap)佔用的記憶體主要和以下幾個因數有關:圖片長度,圖片寬度,單位畫素佔用的位元組

AndroidListview--排序ListView

 ListView的A-Z字母排序和過濾搜尋功能並且實現漢字轉成拼音的功能,我們知道一般我們對聯絡人,城市列表等實現A-Z的排序,因為聯絡人和城市列表我們可以直接從資料庫中獲取他的漢字拼音,而對於一般的資料,我們怎麼實現A-Z的排序,我們需要將漢字轉換成拼音就行

Android圖片的三級快取

為什麼要使用三級快取 如今的 Android App 經常會需要網路互動,通過網路獲取圖片是再正常不過的事了假如每次啟動的時候都從網路拉取圖片的話,勢必會消耗很多流量。在當前的狀況下,對於非wifi使用者來說,流量還是很貴的,一個很耗流量的應用,其使用者數量級肯定要受到影響特別是,當我們想要重複瀏覽一些圖片

Fresco 圖片圓角實現原理及 Android 圖片圓角實現方法

上篇文章 介紹了 Fresco 基礎使用和實現圖片圓角的方法,可以通過兩種方式來實現圓角:BITMAP_ONLY 模式和 OVERLAY_COLOR 模式。本文通過分析 Fresco 原始碼來介紹這兩種方式實現圓角的原理,並總結 Android 中常用的實現圖

淺談AndroidCallback回撥的使用

今天專案的Bug基本修改完成了,於是就對自己還未了解的回撥函式進行了學習。回撥其實就是在一定的時間裡做“一件事”,至於“這件事”具體做的是什麼不會管,只管做“這件事“,比如Boss叫員工去吃飯,但每個員工可能吃不同的食物。只不過,回撥是對介面而言。簡單來說就是,A物件呼叫

Android獲取不同語言目錄下的字串

首先建立兩個API: private final static String LAN_FR = "fr"; private final static String LAN_ES = "es"; Resources getResourcesB

Android圖片快取的一些總結

最近在做圖片載入時遇到記憶體溢位問題,所以這裡找到一些資料學習後,在這裡做一個總結。 這裡使用帶了LruCache技術和DiskLruCache技術,簡單地說,LruCache是做的記憶體快取處理,只負責記憶體中圖片的管理,也就是在記憶體中快取被清除後還是需要

Android LayoutInflater佈局載入器之原始碼篇

前言 如果讀者沒有閱讀過該系列部落格,建議先閱讀下博文說明,這樣會對後續的閱讀部落格思路上會有一個清晰的認識。 導航 概述 (1)Activity 的 getSystemService的實現過程 (2