paint.netで作成した.pngファイルを描画可能なリソースとしてキャンバスに描画しようとしていますが、問題が発生しています。アンドロイドプロジェクトのDrawableリソースのサイズや数に制限はありますか?
いくつかの.pngを作成しようとしました500x500pxです。普通のようにresフォルダにコピーしました。エラーはなく、うまくコンパイルされました。
ただし、アプリが実行されているときは、画像を100x100pxで描画することになっています。
実行時にドロアブルを取得すると、nullポインタ例外が発生してアプリケーションがクラッシュします。
ここには何がありますか?描画可能なイメージが大きすぎますか?または画像のサイズ変更に制限がありますか?
さらに、resフォルダ内のファイル数や一般的なサイズ制限には制限がありますか?
編集:[OK]を、ここで当然のことながら、私は多くを残したが、ここJISTだよ、いくつかのコードです:
ここで私はハンドルを作成し、それを正しいリソースを与える方法は次のとおりです。
Drawable pic;
pic = context.getResources().getDrawable(R.drawable.picture);
ここで私はキャンバスにそれを描く方法は次のとおりです。
pic.setBounds(x, y, x + 100, y + 100);
pic.draw(c);
UPDATE
これは私のナットを運転している! 私のマシンにローカライズされていても、問題はJavaまたはEclipseで明らかにエラーです。 私はいくつかの実験を行い、問題が影響を受ける可能性があることを発見しました。 私のドロウアブルフォルダに10枚の画像があるとしましょう。番号7を除いて、すべての画像をエラーなく参照できます。エラーの例は、数字6を削除すると数字7が表示されますが、数字8はエラーになります。これは、pngファイル自体にエラーはないが、それらがどのように取得されているのかという問題が発生していることを明確に示している。また、画像が入っている順番と関係があります。
私はすべてを試しました。クリーン/ビルドは動作しません。私はdrawableファイル全体を再アップロードしてもエラーは同じように起こります。
ドロアブルファイルにpngで埋め込むことができる「穴」がほとんどあるようですが、使用できません。穴のあとにアルファベット順にファイルを埋めると、穴の中にはありません。あなたが私の意味を持っていれば。
すべての突然の参照が間違ったイメージをすべて突然検索するようなときに、時には奇妙なエラーに遭遇しました。たとえば、10の画像を参照する10の画像では9を表示し、9は8を表示し、8は8を表示し、以下同様に続きます。このエラーは、きれいにして再構築した後に消えているようですが、私はそれを信じることはできません。
イメージが大きすぎず、参照や割り当てに問題があります。 stacktraceと画像を割り当てるコードを投稿してください。また、プロジェクトに必要なすべてのバージョンのイメージがあることを確認してください。それをdrawable-hdpiにのみ格納した場合は、ldpiデバイスでクラッシュする可能性が非常に高いです。 –
私もそうだと思っていました。画像を縮小するとうまくいきます。私はイメージのサイズを変更しようとすると何らかのエラーが発生したと考えています。私はすぐにいくつかの例を得るでしょうが、私はほぼ正解ですが、コードは問題ありません。そして、いいえ、私は濃度専用のフォルダを使用せず、 "DRAWABLE"フォルダのみを使用しています。それもまたそれと関係があるのだろうか? – cody
Pls。コードを投稿してください。 「私はOSに問題があることはほとんど確信している」との私の経験は、99%のケースでは私たちの側で愚かな間違いであるということです。 –