2017-02-12 108 views
0

我是一名非常初學者,作爲android開發人員,我想爲我的任務構建一個樣機應用程序。我能夠對應用程序進行編程並使其正常工作,但是當我將它安裝到手機上時,每次我要載入新節/片段時都會崩潰。在片段上加載圖片,android studio

我得出這樣的結論:崩潰是由於對可繪製文件夾的圖像的過度使用導致由於高資源需求而導致崩潰。所以我需要使用assets文件夾來加載圖像。

但直到現在,我還沒有想出一種方法來加載資源文件夾中的圖像片段。 findViewById,輸入流,全部導致未知的方法錯誤。

任何人的幫助將不勝感激。

源代碼和APK可以在這裏找到:https://drive.google.com/drive/folders/0B1_AQxgFWCzuT0Vxdkx0cmxQMG8?usp=sharing

+0

你會得到什麼錯誤?你能分享logcat嗎? – tahsinRupam

+0

@tahsinRupam在這裏你去。 [logcat的文件](https://drive.google.com/file/d/0B1_AQxgFWCzuWjVGR1lWNjRTcTA/view?usp=sharing)。 好奇我也得到一個警示'I /編舞:跳過39幀!該應用程序可能在其主線程上做了太多工作。「當點擊按鈕時。該應用程序非常滯後 –

回答

0

如果你正在裝載大圖像轉換成ImageViews,你應該使用圖像加載庫。我會推薦Glide:https://github.com/bumptech/glide(有關如何在您的項目中包含Glide以及如何在Github頁面上使用它的說明)。

正在載入您的圖片以這種方式要解決業績不佳的問題,但你也應該小心存儲大量高清晰度的圖像在您的項目,因爲它可以通過大量增加應用程序的大小。

爲了使用findViewById的片段,你應該使用onCreateView方法,像這樣(我使用的ImageView在我的例子):

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.your_layout, container, false); 

    ImageView imageView = (ImageView) view.findViewById(R.id.image_view); 

    return view; 
} 

據我所知,在可繪製文件夾上使用assets文件夾沒有任何優勢。

+0

感謝您的幫助!我現在試試看看它是否有效 –