PDA

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



hamedg1366
سه شنبه 25 آذر 1393, 11:56 صبح
با سلام و عرض ادب خدمت همه دوستان

برای هر تصویر با نسبت 3:4:6:8:12 طراحی کرده و

از چپ به راست برای ldpi - mdpi - hdpi - xhdpi - xxhdpi قرار دادم .

متاسفانه برای سایز های xhdpi - xxhdpi از پوشه mdpi میخونه و عکس ها کوچیکن

در منیفست اینم قرار دادم که نتیجه نداد =


<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
/>



لطفا دوستان کمک کنن و از تجربیات خودشون راه گشا بشن.

با تشکر از همه

hamedg1366
سه شنبه 25 آذر 1393, 17:16 عصر
...up

با عرض شرمندگی

hamedg1366
سه شنبه 25 آذر 1393, 23:42 عصر
لطفا یکی کمک کنه...

اخر سر از دست این اکلیپش خودمو میکشم

hamedg1366
پنج شنبه 04 دی 1393, 22:45 عصر
من هنوز با این مشکل دست و پنجه نرم میکنم.

دوستان ؟

smemamian
پنج شنبه 04 دی 1393, 23:37 عصر
سلام
یک نمونه پروژه تهیه کن و بذار. اینجوری که چیزی واضح نیست.

saeidd
پنج شنبه 04 دی 1393, 23:49 عصر
من خودمو راحت کردم، همه ی resource هامو در یه سایز بزرگ درست کردم و تو پوشه Drawable-nodpi قرار دادم و خودم در زمان اجرا طبق سایز صفحه نمایش بهشون سایز میدم. خیلی راحت تره

smemamian
جمعه 05 دی 1393, 00:38 صبح
من خودمو راحت کردم، همه ی resource هامو در یه سایز بزرگ درست کردم و تو پوشه Drawable-nodpi قرار دادم و خودم در زمان اجرا طبق سایز صفحه نمایش بهشون سایز میدم. خیلی راحت تره
در یک خط کل طراحی اندروید رو بردید زیر سوال..
شما به فضای مصرفی این حرکت فکر کردید ؟!

تغییر سایز عکس 100 در 100 پیکس به 50 در 50 پیکس هم باعث زیر سوال بردن اصل بهینگی نرم افزار خواهد شد. چه برسد به آن چیزی که شما گفتید !

موفق و پایدار.

saeidd
جمعه 05 دی 1393, 09:56 صبح
در یک خط کل طراحی اندروید رو بردید زیر سوال..
شما به فضای مصرفی این حرکت فکر کردید ؟!

تغییر سایز عکس 100 در 100 پیکس به 50 در 50 پیکس هم باعث زیر سوال بردن اصل بهینگی نرم افزار خواهد شد. چه برسد به آن چیزی که شما گفتید !

موفق و پایدار.


واللا برنامه رو تو گوشی ها و تبلت های مختلف با مشخصات سخت افزاری پایین و بالا تست کردم؛ خیلی نرم کار می کنه.

بعد هم اینکه منظورم این نبود که خود فایل رو برمیدارم و تغییر سایز میدم ها، منظورم این بود که در زمان اجرا طول و عرض ImageView رو تغییر میدم. این همون کاهش بهینگی که شما گفتید رو داره؟

و بازم بعدم اینکه شما بگو من اینو چطور باید با اون پوشه ها پیاده سازی کنم: من چندتا دکمه دارم که میخوام در زمان اجرا طولشون 70 درصد طول صفحه نمایش رو بگیره (یه دکمه افقی دراز) و عرض هر کدوم هم مثلا یک دهم عرض صفحه نمایش باشه (البته اکتیویتی هام همه بصورت عمودی هستند).

hamedg1366
جمعه 05 دی 1393, 10:47 صبح
سلام
یک نمونه پروژه تهیه کن و بذار. اینجوری که چیزی واضح نیست.


سلام مسعود جان

اینم لینک (http://s5.picofile.com/file/8159648392/example.rar.html)

لطفا یه نگاهی بنداز

hamedg1366
جمعه 05 دی 1393, 10:50 صبح
نمونه پروژه برای دوستان لطفا یه نگاه بندازین بهش ... تشکر


لینک (http://s5.picofile.com/file/8159648392/example.rar.html)

smemamian
جمعه 05 دی 1393, 17:18 عصر
نمونه ارسالی شما از لحاظ سایز بندی درست بودن.

چند نکته در مورد مثالی که فرستادید :

شناسه ی sw در نسخه های 8 قابل استفاده نیست.

پیکسل تصاویر رو، زوج و به سمت بالا در نظر بگیرید. حتی اگر محاسبات شما عدد فردی رو به شما پیشنهاد داد. پس 111 px مناسب نیست، 112 مناسب خواهد بود.

برای xxhdpi، سایز تصاویر رو 3 برابر mdpi در نظر بگیرید. یعنی اگر برای mdpi تصویر شما 50px هست برای xxhdpi خواهد بود : 150px

از TableLayout استفاده نکنید.

تصاویری که در نظر می گیرد حتماً با کیفیت باشند و از بزرگ به کوچک Scale کنید. نه اینکه تصویر 50px رو بخواهید به 150px تغییر سایز دهید!

مشکل شما کیفیت تصاویر شماست.

saeidd
جمعه 05 دی 1393, 17:23 عصر
جناب smemamian (http://barnamenevis.org/member.php?249007-smemamian)، میشه جواب ما رو هم بدی؟ (پست شماره 8)

smemamian
جمعه 05 دی 1393, 17:28 عصر
واللا برنامه رو تو گوشی ها و تبلت های مختلف با مشخصات سخت افزاری پایین و بالا تست کردم؛ خیلی نرم کار می کنه.

بعد هم اینکه منظورم این نبود که خود فایل رو برمیدارم و تغییر سایز میدم ها، منظورم این بود که در زمان اجرا طول و عرض ImageView رو تغییر میدم. این همون کاهش بهینگی که شما گفتید رو داره؟


بله. این خود ایجاد مشکل در گوشی های مختلف میکنه. خطای مشهور OOM - Out Of Memory رو خواهید داشت.

کافی یکبار حافظه رو Trace کنید تا متوجه حرکتتون بشوید.

saeidd
جمعه 05 دی 1393, 17:40 عصر
بله. این خود ایجاد مشکل در گوشی های مختلف میکنه. خطای مشهور OOM - Out Of Memory رو خواهید داشت.

کافی یکبار حافظه رو Trace کنید تا متوجه حرکتتون بشوید.
ممنون از پاسخ شما؛
پس اینو چه جوری با اون پوشه ها درستش کنم؟:
من چندتا دکمه دارم که میخوام در زمان اجرا طولشون 70 درصد طول صفحه نمایش رو بگیره (یه دکمه افقی دراز) و عرض هر کدوم هم مثلا یک دهم عرض صفحه نمایش باشه (البته اکتیویتی هام همه بصورت عمودی هستند).

saeidd
شنبه 06 دی 1393, 08:45 صبح
جناب smemamian (http://barnamenevis.org/member.php?249007-smemamian) و یا دوستان دیگه، مورد بالا رو کمک کنن

smemamian
شنبه 06 دی 1393, 18:02 عصر
از ویژگی android:layout_weight در LinearLayout استفاده کنید.

برای مثال :

<Button
android:text="left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".70" />


اگر مناسب نیست :

اگر تعداد Viewهای شما در صفحه نمایش کم هست، Resize کردن این Button ها مشکلی رو ایجاد نمی کنه.

saeidd
شنبه 06 دی 1393, 19:03 عصر
ممنون smemamian (http://barnamenevis.org/member.php?249007-smemamian) جان؛

حالا مساله اینه که، من میخوام یه تصویری رو به عنوان بک گراند در همه ی اکتیویتی ها استفاده کنم. من نسبت رزولوشن تصاویر پوشه های Drawable رو میدونم، به عنوان مثال رزولوشن تصاویر پوشه Drawable-xhdpi باید 2 برابر تصاویر پوشه Drawable-mdpi باشه. ولی سوالم اینه که این تصویر بک گراند رو برای mdpi در چه رزولوشنی بسازم که برای بقیه پوشه ها از روی این نسبت سنجی کنم و بسازم؟

البته در مورد تصاویر دیگه هم این سوال هست. (تصاویری که به عنوان دکمه و ... استفاده میشه)

smemamian
شنبه 06 دی 1393, 23:26 عصر
برای سایز تصاویر پس زمینه :


mdpi 320x480.

hdpi 480x800.

xhdpi 640*960.

xxhdpi 960x1440.