2012-05-05 47 views
0

我想改變我的應用程序的首選項屏幕的背景。我能夠這樣做是爲了添加圖像:設置高速緩存首選項列表在android

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.applicationsettings); 

     findViewById(android.R.id.list).setBackgroundDrawable(getResources().getDrawable(R.drawable.app_bg)); 
    } 

背景出現,但是當我滾動,它顯示了一個黑色的緩存 在一個正常的名單,我設置緩存提示,,,,但在這裏我不能這樣做! 有沒有辦法解決它?我試過了:「findViewById(android.R.id.list).setDrawingCacheBackgroundColor(Color.TRANSPARENT);」 但它沒有奏效。

更新 解決的辦法是:

ListView listView = (ListView)findViewById(android.R.id.list); 
listView.setBackgroundDrawable(getResources().getDrawable(R.drawable.app_bg)); 
listView.setCacheColorHint(Color.TRANSPARENT); 

感謝:user370305

+0

不幸的是,我之前嘗試過使用它,但是這種方法沒有ven存在!......我也試過setDrawingCacheEnabled(false)和setWillNotCacheDrawing(true),仍然沒有工作 – user1347945

+1

試試這個,ListView listView =(ListView)findViewById(android.R.id.list); \t listView.setScrollingCacheEnabled(false);並讓我知道發生了什麼.. – user370305

+0

哦,它實際上工作!它是一種恥辱,我沒有想到...謝謝ALOT! – user1347945

回答

1

試試這個,

ListView listView = (ListView)findViewById(android.R.id.list); 
listView.setBackgroundDrawable(getResources().getDrawable(R.drawable.app_bg)); 
listView.setCacheColorHint(Color.TRANSPARENT); 

,讓我知道發生什麼事..