デバイスの画面サイズに合わせて画像のサイズを変更する必要があります。一度に 1 つの画像に対して行うことができますが、現在 18 の画像を扱っています。最も重要なことは、私のコードでは、一度作成された画像を格納するためのマトリックスを作成する必要があることです。このリンクをたどっています ビットマップ画像のサイズを変更しますか? .
複数の画像を簡単かつ効率的に読み込むにはどうすればよいですか。
デバイスの画面サイズに合わせて画像のサイズを変更する必要があります。一度に 1 つの画像に対して行うことができますが、現在 18 の画像を扱っています。最も重要なことは、私のコードでは、一度作成された画像を格納するためのマトリックスを作成する必要があることです。このリンクをたどっています ビットマップ画像のサイズを変更しますか? .
複数の画像を簡単かつ効率的に読み込むにはどうすればよいですか。
@SuppressLint("NewApi")
public static int getDeviceWidth(Activity activity) {
int deviceWidth = 0;
Point size = new Point();
WindowManager windowManager = activity.getWindowManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
windowManager.getDefaultDisplay().getSize(size);
deviceWidth = size.x;
} else {
Display display = windowManager.getDefaultDisplay();
deviceWidth = display.getWidth();
}
return deviceWidth;
}
@SuppressLint("NewApi")
public static int getDeviceHeight(Activity activity) {
int deviceHeight = 0;
Point size = new Point();
WindowManager windowManager = activity.getWindowManager();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
windowManager.getDefaultDisplay().getSize(size);
deviceHeight = size.y;
} else {
Display display = windowManager.getDefaultDisplay();
deviceHeight = display.getHeight();
}
return deviceHeight;
}
// 上記の関数は、デバイスの幅と高さを取得します
public static Bitmap getBitmapFromPath(String sdCardPath, Activity activity) {
// TODO Auto-generated method stub
return decodeSampledBitmapFromResource(sdCardPath,
getDeviceWidth(activity), getDeviceHeight(activity));
}
getBitmapFromPath() に基づいて、画像をデバイス固有として設定できます。画像のパスを取得するときに、アクティビティで getBitmapFromPath() を呼び出します。
//編集された回答
final R.drawable drawableResources = new R.drawable();
final Class<R.drawable> c = R.drawable.class;
final Field[] fields = c.getDeclaredFields();
for (int i = 0, max = fields.length; i < max; i++) {
final int resourceId;
try {
resourceId = fields[i].getInt(drawableResources);
} catch (Exception e) {
continue;
}
/* make use of resourceId for accessing Drawables here */
}