سلام:
یه برنامه دارم که کاربر داخل برنامه دوربین گوشی را باز می کند و باگرفتن عکس آن را به برنامه اضافه می کند . و در یک ImageView نمایش می دهد. تا اینجا مشکلی نبود برای گوشی های با کیفیت دوربین بالا مثل note3 , desire eye امتحان کرد . عکس داخل ImageView نمایش داده نمی شد با اینکه عکس موجود بود و در محل مورد نظر من ذخیره شده بود . توسط کد زیر عکس را resize کردم مشکل من حل شد:
و بعد برای نمایش :
مشکل من زمانی ایجاد می شود که کابر برای گرفتن عکس توسط دوربین گوشی روی سوژه مورد نظر خود zoom in می کند (برای دوربین 5 مگاپیکسل zoom مشکلی ایجاد نکرد)
دوربین گوشی desire eye برای زوم مرحله اول مشکلی ایجاد نکرد. اما وقتی با این گوشی zoom بیشتر از مرحله اول الی آخرین مرحله zoom انجام شود عکس گرفته شده مجدد ا نمایش داده نمی شود.
با تشکر از دوستانی که راهنمایی می کنند.
یه برنامه دارم که کاربر داخل برنامه دوربین گوشی را باز می کند و باگرفتن عکس آن را به برنامه اضافه می کند . و در یک ImageView نمایش می دهد. تا اینجا مشکلی نبود برای گوشی های با کیفیت دوربین بالا مثل note3 , desire eye امتحان کرد . عکس داخل ImageView نمایش داده نمی شد با اینکه عکس موجود بود و در محل مورد نظر من ذخیره شده بود . توسط کد زیر عکس را resize کردم مشکل من حل شد:
کد پیاچپی:
public Bitmap decodeSampledBitmapFromUri(String path, int reqWidth,int reqHeight) {
Bitmap bm = null;
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options)
options.inSampleSize = calculateInSampleSize(options, reqWidth,reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
bm = BitmapFactory.decodeFile(path, options);
return bm;
}
public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math.round((float) height/ (float) reqHeight);
} else {
inSampleSize = Math.round((float) width / (float) reqWidth);
}
}
return inSampleSize;
}
و بعد برای نمایش :
کد پیاچپی:
Bitmap bitm=decodeSampledBitmapFromUri(getmypath, 1024, 1024);
مشکل من زمانی ایجاد می شود که کابر برای گرفتن عکس توسط دوربین گوشی روی سوژه مورد نظر خود zoom in می کند (برای دوربین 5 مگاپیکسل zoom مشکلی ایجاد نکرد)
دوربین گوشی desire eye برای زوم مرحله اول مشکلی ایجاد نکرد. اما وقتی با این گوشی zoom بیشتر از مرحله اول الی آخرین مرحله zoom انجام شود عکس گرفته شده مجدد ا نمایش داده نمی شود.
با تشکر از دوستانی که راهنمایی می کنند.