res フォルダーの drawable-hdpi,drawable-mdpi,drawable-ldpi 内にさまざまな解像度の画像を保持できますが、 assets/www フォルダーから画像にアクセスする方法がわかりません。親切に助けてください。
4 に答える
マルチ解像度を処理するには、さらに何かを行う必要があります。id で画像を取得するだけで、システムは現在の解像度に従って自動的に pic します。
http://developer.android.com/guide/practices/screens_support.html#range
パスを使用する場合は、次のことを試してください。
private void showImage() {
String uri = "drawable/icon";
// int imageResource = R.drawable.icon;
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
ImageView imageView = (ImageView) findViewById(R.id.myImageView);
Drawable image = getResources().getDrawable(imageResource);
imageView.setImageDrawable(image);
}
ただし、R
参照を使用することをお勧めします:
int imageResource = R.drawable.icon;
Drawable image = getResources().getDrawable(imageResource);
drawable-hdpi drawable-mdpi,drawable-ldpi
画面の解像度に応じて画質を区別するための単なる異なるフォルダです。アイデアは、同じ画像を異なる解像度の異なるフォルダに配置することです...
(dpiに関係なく)画像IDを取得できます:
R.drawable.your_image
したがって、id を使用すると、必要なことはすべて実行できます (検索を使用)。
AssetManager は必要ありません。できるよ
BitmapFactory.decodeFile("file:///android_asset/www/bullet.jpg")
アセットに画像を保存することは最善の方法ではありませんが。Android リソース管理システムを利用できなくなります。したがって、これを行うやむを得ない理由がない限り、res フォルダーとリソース システムの使用を検討することをお勧めします。
更新: 説明 BitmapFactory には、decodeFile メソッドを介してファイルをデコードするメソッドがあります。それがポイント1です。Android では、file:///android_asset/{path} パスを介してアセット フォルダー内のファイルにアクセスできます。あなたの場合、 /image/Malay/bullet.jpg の画像は、アセットフォルダーからアクセスできますfile:///android_asset/www/bullet.jpg