Assetsから読み込むと画像の色が劣化しない

androidの画像の読み込みで、drawableディレクトリに画像をいれると、画像が劣化する気がする。白い画像とか。

と言うか劣化してる↓

↑なんですが、別に青い画像なんかいれてないんですよ。白い画像をいれてます。

 

「劣化って言うレベルじゃねえぞ。」

 

笑えないレベル劣化ですね。白が青いなんて、白熱灯の下で作業する前提なんでしょうか。

色が若干違うとかなら許せるのですが、これは読み込んだ画像だけが違う。と言う大惨事である。

 

で回避方法としては、assetsにいれてそれを読み込む。

Assets内の画像を読み込む

と上記が、

正しい色情報で出ました。

assetsに入れるという事は、javaで圧縮がされない形で出力されています。

 

ですが、drawableに入れていた時とapkファイルのサイズを比べると

画像なし:308KB

drawable:419KB

assets:583KB

となり、圧縮されてない分重いです。

そこで以前紹介していた

png圧縮をして容量、メモリにやさしいアプリ制作

で利用していたPNGGauntletを利用します。変換するとかなりpngの容量が軽くなりました。

変換をしたファイルを中にいれると

drawable:419KB→419KB

assets:583KB→408KB

となり、drawableより軽い!!しかもdrawableは変わらない。。

 

色の劣化もない、上に、容量も軽い。

drawableで劣化しなかればそれが簡単なのですが、劣化しない方法でイマイチ良い方法が分からなかったので

色のデータ劣化に悩んでいたら結構ありな技かと思います。

 

drawableにいれた時にapkのサイズが変わらないのは、javaで読み込む時に独自の軽量化をしてしまっているから、軽量化する前と変わらなかったのかと思います。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑