2017-02-12 10 views
0

私はアンドロイドデベロッパーとして非常に初心者です。私は自分の課題にモックアップアプリを作りたいと思っていました。私はアプリをプログラムして動作させることができましたが、私の携帯電話にインストールすると、新しいセクション/フラグメントをロードするたびにクラッシュします。画像をフラグメント、アンドロイドスタジオにロード

クラッシュは、からの画像の過度の使用によるものであると判断しました。これは、リソース要件が高いためクラッシュします。代わりにassetsフォルダを使用してイメージをロードする必要がありました。

これまでは、断片のアセットフォルダから画像を読み込む方法を考えていませんでした。 findViewById、入力ストリーム、すべてが未知のメソッドエラーになりました。

誰もが喜んで感謝します。

ソースコードとAPKをここで見つけることができます:https://drive.google.com/drive/folders/0B1_AQxgFWCzuT0Vxdkx0cmxQMG8?usp=sharing

+0

どのようなエラーが表示されますか?あなたはlogcatを共有できますか? – tahsinRupam

+0

@ tahsinRupamここに行きます。 [ログファイル](https://drive.google.com/file/d/0B1_AQxgFWCzuWjVGR1lWNjRTcTA/view?usp=sharing)。 不思議なことに私には警告があります。I/Choreographer:39フレームをスキップしました!ボタンをクリックしたときにアプリケーションがメインスレッドで作業しすぎている可能性があります。アプリは非常に遅いです –

答えて

0

あなたはImageViewsに大きなイメージをロードしている場合は、画像の読み込みライブラリを使用する必要があります。 Glide:https://github.com/bumptech/glide(あなたのプロジェクトにGlideを含める方法と、Githubページでそれを使用する方法に関する指示があります)をお勧めします。

このように画像を読み込むと、パフォーマンスが低下する問題を解決するはずですが、アプリのサイズを大きくすることができるため、プロジェクトに高解像度の画像をたくさん保存することにも注意してください。あなたは(私は私の例でImageViewのを使用している)ので、のようなonCreateViewメソッドを使用する必要がありフラグメントにfindViewByIdを使用するためには

:私の知る限り

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; 
} 

、アセットフォルダをドロウアブルフォルダに使用する利点はありません。

+0

助けてくれてありがとう!私は今それが動作するかどうかを見るためにそれを試してみましょう –

関連する問題