標籤: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中怎樣引用圖片資源