کلیدستان

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

 
سلام.

(۱۳۹۳/۱۲/۰۸, ۰۹:۵۱ ب.ظ)'mohamadshadkam' نوشته: [ -> ]اولین مشگل اینجاست که این تصاویر افت شدیدکیفیت پیدا میکنن و تو اکتیویتی خیلی بد نمایش داده میشن به نظرتون واسه رفع این مشگل چه کاری میتونم انجام بدم چند روزه درگیره این مشگلم!!!!! عجیب وقتمو گرفته(تصاویر رو هم خودم تو فتوشاپ طراحی کردم با سایز هایی که تو سایت گفته شده)
 

عکس رو در ImageView نمایش داده اید ؟
آیا عکس های با رزولوشن مختلف را در پوشه های drawable قرار داده اید ؟ (یا حداقل اگر تنها یک عکس قرار داده اید، آیا رزولوشن مناسبی دارد یا خیر ؟)

(۱۳۹۳/۱۲/۰۸, ۰۹:۵۱ ب.ظ)'mohamadshadkam' نوشته: [ -> ]و مشگل دوم اینجاست که وقتی اکتیویتی اول نمایش داده میشه و همزمان کاربر حالت گوشی رو عوض میکه(گوشی رو میچرخونه برنامه بسته میشه!!! حالا این زیاد مهم نیست ولی اولی مهمه
 

اگر برایتان مهم نیست، می توانید تعیین کنید که با چرخش گوشی، Activity از ابتدا اجرا نشود (restart نشود) :

کلید شماره 270

یا تعیین کنید که در آن Activity خاص، چرخش صفحه غیرفعال باشد :

کلید شماره 221

اما اگر حتما قصد دارید که restart شود، بستگی به کدها دارد و باید با روش های متناظر با چرخش گوشی (روش onConfigurationChanged)، کدهای مورد نیاز برای عدم ایجاد Force Close را بنویسید.

 سلام
بله عکس رو با ایمیج ویو نمایش دادم و با رزولیشن های مختلف همون طور که خودتون تو آموزش سایت گفتید ازشون استفاده کردم ولی فکر کنم چون سایز تصویر رو کوچیک میکنم کیفیت عکس کمتر میشه ولی تو ایمیج ویو وقتی تو گوشی اجرا میشه از تصویر هیچی معلوم نیست!!!
سلام
به جای نمایش در Imageview عکس را در background  بگذارید

بعدش ببینید اندازه عکستون چند پیکسل هستش؟
در بکگراند هم گذاشتم ولی متاسفانه باز هم افت کیفیت وجود داره!!!
و سایز هم طبق زیر :
512 *512 px
144 * 144 px
72 * 72 px
96 * 96 px
48 * 48 px

!!
(۱۳۹۳/۱۲/۱۱, ۰۲:۰۹ ق.ظ)'mohamadshadkam' نوشته: [ -> ]در بکگراند هم گذاشتم ولی متاسفانه باز هم افت کیفیت وجود داره!!!
و سایز هم طبق زیر :
512 *512 px
144 * 144 px
72 * 72 px
96 * 96 px
48 * 48 px

!!

 

این اندازه هایی که ذکر کردید، برای آیکون (icon) برنامه اندروید می باشد. برای سایر عکس ها، نیازی به اعمال این اندازه ها نیست. بنابراین یک اندازه مناسب (بزرگ) از عکس مورد نظر خود را در یکی از پوشه های drawable قرار بدهید (معمولا در پوشه drawable-hdpi ، اکثر مواقع تنها یک عکس با کیفیت مناسب کفایت می کند، مگر اینکه قصد داشته باشید در همه پوشه ها، با اندازه های مختلف قرار بدهید، که البته بستگی به برنامه و میزان حساسیت توسعه دهنده دارد).

تشکر
خب با این حال اگر من یک عکس بزرگ رو فقط تو پوشه drawable-hdpi کپی کنم در صورتی که نرم افزار روی یه گوشی با سایز کوچیک  اجرا بشه این عکس چینش برنامه رو به هم نمیریزه(مثلا بقیه اشیا از صفحه خارج بشن و نمایش داده نشن) و در گوشی های بزرگ و حالت های land و port مشگلی ایجاد نمیشه؟
(۱۳۹۳/۱۲/۱۱, ۱۱:۰۷ ب.ظ)'mohamadshadkam' نوشته: [ -> ]تشکر
خب با این حال اگر من یک عکس بزرگ رو فقط تو پوشه drawable-hdpi کپی کنم در صورتی که نرم افزار روی یه گوشی با سایز کوچیک  اجرا بشه این عکس چینش برنامه رو به هم نمیریزه(مثلا بقیه اشیا از صفحه خارج بشن و نمایش داده نشن) و در گوشی های بزرگ و حالت های land و port مشگلی ایجاد نمیشه؟

 

بستگی به کدنویسی شما دارد. یعنی باید مشخصه های مناسب را تعیین کنید تا برای گوشی های مختلف، مشکلی به وجود نیاید. براتون مثال می زنم، مثلا اگر برای یک ImageView ، مشخصه های مربوط به طول و عرض آن را برابر wrap_content انتخاب کنیم (که یعنی اندازه آن، وابسته به محتوای نمایش داده شده در آن خواهد بود)، آنگاه در گوشی های با رزولوشن مختلف، عکس متفاوت نمایش داده می شود. مثلا یکی به اندازه یک سوم صفحه و دیگری به اندازه نصف صفحه نمایش داده می شود. پس باید مشخصه match_parent را به جای آن انتخاب کنیم (تا ImageView ، کل فضا را بپوشاند و همچنین تعیین می کنیم که عکس، کل ImageView را بپوشاند، این نیز با تعیین یک سری مشخصه های مختلف قابل تعیین است). این نکات زیاد است و هنگام کار با لایه ها (فایل های xml) و تست ظاهر آنها در صفحات با اندازه های مختلف، چگونگی تنظیم انها را متوجه خواهید شد.
موردی هم که دوستمون گفتند عکس در پس زمینه عنصر (مثلا در پس زمینه ImageView یا هر عنصر دیگر یا اصلا در پس زمینه Activity) نمایش داده شود نیز یک نکته مفید و کاربردی است.