Android ImageView 不顯示JPEG圖片 及 Android Studio中怎樣引用圖片資源

來源:互聯網
上載者:User

標籤:eth   儲存   ext   cal   問題   img   call   article   style   

Android ImageView 不顯示JPEG圖片 

今天在寫一個小執行個體,ImageView在xml裡面設定的是INVISIBLE,在代碼裡須要設定成setVisibility(View.VISIBLE),但圖片沒有顯示出來,換成PNG或其他的JPEG格式的圖片確能夠正常的顯示。

原因:顯示的圖片大小為5.39K,圖片格式有損壞,所以不能正常顯示。

解決:換一張圖片。或又一次產生JPEG圖片。

假設還是不能正常顯示,建議在設定完VISIBLE後,調用例如以下方法:

iv.setVisibility(View.VISIBLE);view.requestLayout();
Call this when something has changed which has invalidated the layout of this view. This will schedule a layout pass of the view tree.
我們能夠理解為又一次布局了一下view。

用途:有時我們在改變一個view 的內容之後可能會造成顯示出現錯誤,比方寫ListView的時候重用convertview中的某個TextView 可能由於前後填入的text長度不同而造成顯示出錯,此時我們能夠在改變內容之後調用requestLayout方法加以解決。


建議:png是一種無損格式,JPG是有損格式。

JPG在處理顏色非常多的圖片時,依據壓縮率的不同,有時會去掉一些肉眼識別差距較小的中間顏色。可是PNG對於無損這個基本要求,會嚴格保留全部的色彩數。 所以。圖片尺寸大。或者色彩數量多特別是漸層色的多的時候。PNG的體積會明顯大於JPG。

Android的介面能用png最好是用png,由於32位的png顏色過渡平滑且支援透明。

jpg是像素化壓縮過的圖片。品質已經下降了。再拿來做9patch的button和平鋪展開的控制項必定慘不忍睹,要盡量避免。事實上在res下icon用的都是png格式。就是說Google推薦使用的是png格式的圖片。

對於顏色繁雜的。比方照片牆紙之類的圖片(有些應用的啟動畫面喜歡搞這樣的)。那用jpg是最好只是了。這樣的圖片壓縮前壓縮後肉眼分辨差點兒不計。假設儲存成png體積將是jpg的幾倍甚至幾十倍,嚴重浪費體積。

解釋:什麼是9patch。Patch的中文意思是“片。塊”的意思。那這裡按中文的意思來說就是9片或9塊。因此可想而知這個圖片會被分為9片,例如以所看到的:


9patch僅僅解釋這麼多。須要具體瞭解的能夠繼續深入研究。


Android Studio中怎樣引用圖片資源

在Eclipse中依據圖片的像素大小把.png或.jpg的圖片放在drawable目錄下,如drawable-hdpi,drawable-ldpi。drawable-mdpi,drawable-xhdpi。drawable-xxhdpi。同一張圖片放在不同的drawable目錄下。顯示的時候會有所不同。可是在xml中引用的時候是一樣的:android:[email protected]/pic 或者android:[email protected]/pic 。



可是到Android Studio中就不一樣了,發現沒有這麼多的drawable目錄了,而僅僅有一個drawable目錄。取而代之的是出現了非常多mipmap目錄,如mipmap-hdpi,mipmap-mdpi,mipmap-xhdpi,mipmap-xxhdpi。所看到的:


首先嘗試把圖片放在drawable中,然後在xml中使用android:[email protected]/pic或者android:[email protected]/pic。使用。發現沒有問題。全然能夠顯示。

可是為什麼有這麼多mipmap呢?

Google官方的解釋是效能最佳化,佔用記憶體小等等,總之mipmap這個形式比drawable好。So。推薦我們在Android Studio中使用mipmap。那好,我們把圖片放在mipmap目錄下。那怎麼在xml中使用呢?

android:[email protected]/pic
很類似圖片放在drawable中的引用方式,也是使用@來引用。

所以這也是很easy的。不同像素的mipmap目錄圖片都是一樣的使用。可是注意:在AS中,同一張圖片放在drawable目錄下和放在mipmap目錄下顯示效果是不一樣的。在大小,縮放,像素上都可能有所差異。

把Android Studio和Eclipse比較著學習,他們既相似又有一定的差別。

Android ImageView 不顯示JPEG圖片 及 Android Studio中怎樣引用圖片資源

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.