CSharp程序員學Android開發---3.Android內部元素不填充BUG


  最近公司組織項目組成員開發一個Android項目的Demo,之前沒有人有Andoid方面的開發經驗,都是開發C#的。 雖說項目要求並不是很高,但是對於沒有這方面經驗的人來說,第一步是最困難的。

項目歷時一個多月,4個人開發,最終行成一個可用的Demo,整體效果還非常不錯。這其中借鑒了網上的“仿網易客戶端的Demo”還有就是學習《瘋狂Android》,收獲頗多,這里利用幾篇文章做一個項目經驗總結,還有就是更多的從C#

程序員的觀點來理解Android的一些異同之處。

 

文章目錄:

CSharp程序員學Android開發---1.初識AndriodIDE,掌握工具使用

CSharp程序員學Android開發---2.個人總結的快捷鍵

CSharp程序員學Android開發---3.Android內部元素不填充BUG

 

 

 案例:Layout Error:

  首先說明一下,這個問題是項目開發中遇到的難點之一,Baidu中的解決方案並不多,最終是泡在StackOverFlow上找到了答案。

  圖中的紅色部分是圖片本應該填充的部分,但未填充而顯示了背景紅色,右側的兩條藍色線條也是如此。相信很多人都遇到了這個問題,所以不想多說了,元素屬性已經是fill_parent或者match_parent,可見在某些情況下fill_parent會無效。

  最后,欣喜的是在幾個小時的嘗試,Search之后終於找到了問題,這個是Layout的一個bug,已經有人提交到Android的官方,大概是問題出在,某些情況下控件沒有刷新自身大小導致這樣的結果。

  以下是解決步驟:
        1. 將fill_parent替換成match_parent
        2. 在ImageView中設置參數 android:adjustViewBounds="true" 和 android:scaleType="fitXY" ,建議所有ImageView都設置上。
            或  img.setScaleType(ScaleType.FIT_XY);  img.setAdjustViewBounds(true);

      最終,所有圖片均真正的“填充”了,其原理是強制圖片刷新自己,可能這樣會導致一些效率問題。

      

 

 

引用

 BUG:當布局中其中一個控件為GONE時布局有誤的解決辦法:http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html
 BUG:LinearLayout中元素不fillBUG: http://stackoverflow.com/questions/5403970/imageview-adjustviewbounds-does-not-work-with-layout-height-fill-parent
                          http://stackoverflow.com/questions/16462407/android-imageview-from-url-wont-fill-parent-in-listview

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM