PDA

View Full Version : استفاده برنامه در رزولوشن های مختلف



bgalborz
شنبه 18 شهریور 1391, 16:11 عصر
سلام من برنامه ای نوشتم که توش از imageview های زیادی استفاده کردم ولی وقتی تو گوشی هایی با رزولوشن های مختلف استفاده میکنم imageviewهای من طبق تنظیم اولیه من ثابت میمونه ولی عکس پشتش کوچیک یا بزرگ میشه و تو صفحه های کوچک تر imageview هاییم که پایین صفحه هستن نشون داده نمیشه .
حتی اسکرول بار هم نمیاد که صفحه بالا پایین بره.
ممنون میشم راهنماییم کنید .
فقط واضح باشه...

hamid_hr
شنبه 18 شهریور 1391, 16:39 عصر
سلام

http://www.kamalan.com/?cat=7

اينجا شايد بتونه مشكلتو رفع كنه

bgalborz
یک شنبه 19 شهریور 1391, 15:44 عصر
سلام

http://www.kamalan.com/?cat=7

اينجا شايد بتونه مشكلتو رفع كنه

نه متاسفانه اصلا خوب توضیح نداده میدونی مشکل اصلی من چیه ؟
اینه که عکس هام با تصویر بزرگ و کوچیک نمیشه همون جا با توجه به چپ بالا ثابت میمونه.

dr_jacky_2005
دوشنبه 20 شهریور 1391, 08:14 صبح
نه متاسفانه اصلا خوب توضیح نداده میدونی مشکل اصلی من چیه ؟
اینه که عکس هام با تصویر بزرگ و کوچیک نمیشه همون جا با توجه به چپ بالا ثابت میمونه.

احتمالا چون به width و height سایز دادید . مثلا دادید 400dp در 200 dp
باید wrap_content بدید
و scale رو هم بزارید : fitXY

یا تــو همین مایه ها

bgalborz
دوشنبه 20 شهریور 1391, 12:38 عصر
احتمالا چون به width و height سایز دادید . مثلا دادید 400dp در 200 dp
باید wrap_content بدید
و scale رو هم بزارید : fitXY

یا تــو همین مایه ها


اینطوری هم نشد ولی فکر کنم اگه بتونم سایز صفحه گوشی مورد نظر رو بدست بیارم بشه مقدار x , y رو خودم دستی بهش بدم
اینطوری شاید بشه درستش کرد

srfarzad
دوشنبه 20 شهریور 1391, 15:25 عصر
شما باید از Aspect Ratio کار کنید
یعنی سایز مثلا صفحه رو بگیرید و بعد به عکستون بدین
تا تو هر رزولوشنی کار کنه

imv = (ImageView) findViewById(R.id.ReturnedImageView);
Display currentDisplay = getWindowManager().getDefaultDisplay();
int dw = currentDisplay.getWidth();
int dh = currentDisplay.getHeight();
// Load up the image's dimensions not the image itself
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)dh);
int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)dw);
if (heightRatio > 1 && widthRatio > 1)
{
if (heightRatio > widthRatio)
{
// Height ratio is larger, scale according to it
bmpFactoryOptions.inSampleSize = heightRatio;
}
else
{
// Width ratio is larger, scale according to it
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
// Decode it for real
bmpFactoryOptions.inJustDecodeBounds = false;
bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);
// Display it
imv.setImageBitmap(bmp);
}
}