آموزش برنامه نویسی اندروید (Android)
دسته بندی ( ۴۸۲ آموزش )
نمایش دسته بندی ها (۴۸۲ آموزش)
مباحث اولیه، در برنامه نویسی اندروید
مباحث اولیه، در برنامه نویسی اندروید 28
کار با Activity ها ، در برنامه نویسی اندروید
کار با Activity ها ، در برنامه نویسی اندروید 21
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید
طراحی فایل های xml متناظر با Activity ها و ... (لایه گرافیکی Activity ها و ...)، در برنامه نویسی اندروید 11
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید
کار با برنامه Eclipse (یا همان ADT Bundle)، در برنامه نویسی اندروید 11
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید
خطاهای رایج در برنامه Eclipse و در برنامه نویسی اندروید 10
کار با برنامه Android Studio ، در برنامه نویسی اندروید
کار با برنامه Android Studio ، در برنامه نویسی اندروید 9
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید
خطاهای رایج در برنامه Android Studio و در برنامه نویسی اندروید 3
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید
تبدیل متغیرها و سایر تبدیل ها، در برنامه نویسی اندروید 9
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید
نمایش عکس و کار با ImageView ، در برنامه نویسی اندروید 23
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید
نمایش متن و کار با رشته ها (strings) و TextView ، در برنامه نویسی اندروید 38
ساخت دکمه (Button) ، در برنامه نویسی اندروید
ساخت دکمه (Button) ، در برنامه نویسی اندروید 7
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید
ساخت لیست (فهرست) با ListView ، در برنامه نویسی اندروید 12
ساخت EditText، در برنامه نویسی اندروید
ساخت EditText، در برنامه نویسی اندروید 6
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید
مجموعه ویدئوهای آموزش طراحی متریال (Material Design)، در برنامه نویسی اندروید 13
طراحی متریال (Material Design)، در برنامه نویسی اندروید
طراحی متریال (Material Design)، در برنامه نویسی اندروید 3
پخش موسیقی، در برنامه نویسی اندروید
پخش موسیقی، در برنامه نویسی اندروید 5
نمایش انیمیشن، در برنامه نویسی اندروید
نمایش انیمیشن، در برنامه نویسی اندروید 3
تغییر ویژگی های کلی برنامه اندروید
تغییر ویژگی های کلی برنامه اندروید 3
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید
ذخیره اطلاعات با SharedPreferences ، در برنامه نویسی اندروید 2
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید
پایگاه داده (SQLite Database)، در برنامه نویسی اندروید 10
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید
تبادل اطلاعات بین برنامه اندروید و سرور اینترنتی (اینترنت)، در برنامه نویسی اندروید 21
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید
نمایش یک صفحه اینترنتی یا کدهای HTML (کار با WebView) و ساخت لینک، در برنامه نویسی اندروید 8
حلقه ها (for و while و ...)، در برنامه نویسی اندروید
حلقه ها (for و while و ...)، در برنامه نویسی اندروید 2
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید
نمایش پیام به کاربر (Dialog و AlertDialog و Toast و Notification و ...)، در برنامه نویسی اندروید 11
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید
ویژگی های صفحه نمایش و چرخش آن، در برنامه نویسی اندروید 10
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید
به دست آوردن ویژگی های کلی برنامه اندروید، در برنامه نویسی اندروید 4
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید
به دست آوردن ویژگی های گوشی کاربر، در برنامه نویسی اندروید 5
بازی سازی، در برنامه نویسی اندروید
بازی سازی، در برنامه نویسی اندروید 1
به اشتراک گذاری (share)، در برنامه نویسی اندروید
به اشتراک گذاری (share)، در برنامه نویسی اندروید 5
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید
کار با فایل ها و فولدرها در حافظه خارجی (External Storage)، در برنامه نویسی اندروید 15
کار با پوشه های raw و assets ، در برنامه نویسی اندروید
کار با پوشه های raw و assets ، در برنامه نویسی اندروید 2
عملیات های ریاضی، در برنامه نویسی اندروید
عملیات های ریاضی، در برنامه نویسی اندروید 13
کار با دوربین (Camera)، در برنامه نویسی اندروید
کار با دوربین (Camera)، در برنامه نویسی اندروید 3
کار با action bar ، در برنامه نویسی اندروید
کار با action bar ، در برنامه نویسی اندروید 4
کار با کلاس ها (class) ، در برنامه نویسی اندروید
کار با کلاس ها (class) ، در برنامه نویسی اندروید 4
کار با package ها ، در برنامه نویسی اندروید
کار با package ها ، در برنامه نویسی اندروید 2
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز)
نرم افزارهای شبیه ساز برای اجرای برنامه های اندروید بر روی سیستم عامل کامپیوتر (مثل ویندوز) 2
امنیت، در برنامه نویسی اندروید
امنیت، در برنامه نویسی اندروید 1
Thread ها، در برنامه نویسی اندروید
Thread ها، در برنامه نویسی اندروید 3
سرویس ها (Service)، در برنامه نویسی اندروید
سرویس ها (Service)، در برنامه نویسی اندروید 9
BroadcastReceiver ، در برنامه نویسی اندروید
BroadcastReceiver ، در برنامه نویسی اندروید 0
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید
تاریخ و زمان و تمامی موارد مرتبط با زمان (عملیات های زمان بندی شده و ...)، در برنامه نویسی اندروید 11
AsyncTask ، در برنامه نویسی اندروید
AsyncTask ، در برنامه نویسی اندروید 2
آرایه ها (Arrays)، در برنامه نویسی اندروید
آرایه ها (Arrays)، در برنامه نویسی اندروید 3
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید
لیست آرایه ای (ArrayList)، در برنامه نویسی اندروید 6
رنگ ها (Colors)، در برنامه نویسی اندروید
رنگ ها (Colors)، در برنامه نویسی اندروید 3
Fragment ها و Tab بندی، در برنامه نویسی اندروید
Fragment ها و Tab بندی، در برنامه نویسی اندروید 8
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید
معرفی کتابخانه ها (Libraries)، در برنامه نویسی اندروید 1
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید
ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید 3
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید
نسخه اندروید (Android version) و API level (نسخه API) ، در برنامه نویسی اندروید 1
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید
لرزاندن گوشی (vibrate)، در برنامه نویسی اندروید 2
پرداخت درون برنامه ای، در برنامه نویسی اندروید
پرداخت درون برنامه ای، در برنامه نویسی اندروید 1
 پروژه های اندروید Open Source کاربران کلیدستان
پروژه های اندروید Open Source کاربران کلیدستان 2
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید
ساخت امکانات جانبی (جستجو، لیست علاقه مندی، لوگو، منو و ...) برای برنامه اندروید 5
مباحث عمومی، در برنامه نویسی اندروید
مباحث عمومی، در برنامه نویسی اندروید 35

طراحی نوع نمایش فایل های xml برای صفحه های نمایش با اندازه های مختلف (گوشی های مختلف)

زمانی که شما یک برنامه اندروید می سازید، ممکن است آن را بر روی یک شبیه ساز یا یک گوشی اندروید واقعی تست کنید، اما باید توجه داشته باشید که چنانچه برنامه شما بر روی یک گوشی اندروید با اندازه صفحه نمایش متفاوتی اجرا شود، ممکن است ظاهر آن تفاوت داشته باشد و بنابراین کل طراحی شما به هم بریزد. خوشبختانه برای رفع این مشکل، راه حلی در هنگام ساخت پروژه اندروید، در نظر گرفته شده است.

نگاهی به شکل زیر بیندازید (شکلی از پوشه های یک پروژه اندروید) :

طراحی نوع نمایش فایل های xml برای صفحه های نمایش با اندازه های مختلف (گوشی های مختلف)

در شکل بالا، ما 4 پوشه (folder) را با کادر قرمز رنگ، مشخص کرده ایم، اما اگر دقت کنید، شما در پروژه اندروید خود (در برنامه eclipse)، تنها پوشه با نام layout را دارید. موضوع این است که، پوشه layout که ما در آن، فایل های xml خود برای نمایش ظاهر activity ها را قرار می دهیم، برای گوشی های با اندازه نرمال (normal) مناسب است و چنانچه بخواهیم فایل های xml ، در گوشی های با سایر اندازه های صفحه نمایش نیز به طور مناسب نمایش داده شوند، باید 3 پوشه دیگر را نیز برای پروژه اندروید خود ساخته و سپس از فایل xml مورد نظرمان، به درون هر یک از آنها، کپی کنیم. (اگر تنها فولدر layout موجود باشد، برای همه گوشی ها، فایل های xml موجود در آن، به کاربر نمایش داده می شود)

بنابراین تا اینجا شرح دادیم که علاوه بر پوشه layout ، باید 3 پوشه دیگر نیز بسازیم (با نام ها و موقعیت نمایش داده شده در شکل قبل)، سپس مثلا یک فایل xml را قبلا در پوشه layout ساخته ایم و آن را ویرایش کرده ایم. اکنون برای اطمینان از نمایش صحیح آن در سایر گوشی ها، در هر یک از 3 پوشه دیگر، آن را کپی می کنیم. در نهایت باید فایل های xml درون 4 پوشه را به طور جداگانه باز کنیم و موقعیت عناصر را در آنها تنظیم نماییم.

هر یک از این 4 پوشه، برای یک دسته از گوشی های اندروید با یک محدوده صفحه نمایش مشخص می باشد. مثلا فرض کنید که برنامه اندروید را بر روی یک گوشی با صفحه نمایش بزرگ (large) نصب نماییم، گوشی اندروید، به جای اینکه فایل xml موجود در پوشه layout را به کاربر نمایش دهد، فایل xml موجود در layout-large را نمایش خواهد داد. بنابراین کاربر، طراحی شما برای گوشی اندروید با صفحه نمایش بزرگ (large) را مشاهده می کند و از این بابت، خیال شما آسوده خواهد بود.

اثرگذاری رزولوشن عکس های برنامه اندروید :

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

بنابراین بهتر است که یک جمع بندی در این زمینه داشته باشیم :

1- در پوشه های layout با نام های مختلف، فایل های xml جداگانه ای را برای ظاهر گرافیکی Activity در گوشی های با ((اندازه صفحه نمایش)) مختلف قرار می دهیم :


res/layout/layout.xml  
res/layout-small/layout.xml  
res/layout-large/layout.xml  
res/layout-xlarge/layout.xml  
res/layout-land/layout.xml  
res/layout-small-land/layout.xml  
res/layout-large-land/layout.xml  
res/layout-xlarge-land/layout.xml

در کدهای بالا، پوشه هایی نیز با پسوند land ساخته ایم، مثلا یک پوشه با نام layout-xlarge-land ساخته ایم که مربوط به گوشی های با اندازه xlarge است که برای زمانی است که گوشی دارای اندازه xlarge بوده و همچنین در حالت افقی (landscape) قرار گرفته باشد (یک یادآوری برای این نکته است که برای هر Activity ، می توانیم یک فایل xml نیز برای زمانی طراحی کنیم که کاربر، گوشی را در حالت افقی (landscape) قرار می دهد)(برای توضیحات بیشتر، کلید شماره 2619 را بخوانید).

طراحی نوع نمایش فایل های xml برای صفحه های نمایش با اندازه های مختلف (گوشی های مختلف)
گوشی در دو حالت عمودی (portrait) و افقی (landscape)

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

2- واحد dp را برای اندازه عناصر گرافیکی و واحد sp را برای متن به کار می بریم (واحد sp برای اندازه خود متن، نه برای اندازه TextView یا عناصری که حاوی متن هستند).

3- باید ببینیم که آیا اندازه عناصر گرافیکی موجود در لایه گرافیکی را به محتوایی که در آنها قرار می گیرد، وابسته کرده ایم یا خیر. مثلا آیا اندازه یک ImageView به عکسی که در آن قرار می گیرد وابسته است یا خیر. توصیه این است که چنین وابستگی ایجاد نکنیم، اما اگر وابسته است، قرار دادن عکس با رزولوشن های مختلف، در پوشه های مختلف drawable که برای گوشی های اندروید با ((رزولوشن)) مختلف می باشند، کمک می کند که چندان ظاهر گرافیکی، در گوشی های با رزولوشن متفاوت، تغییر نکند (ولی باز هم می گویم که آنها را به رزولوشن وابسته نکنید) :


res/drawable-hdpi/icon.png
res/drawable-ldpi/icon.png
res/drawable-mdpi/icon.png
res/drawable-xhdpi/icon.png
res/drawable-xxhdpi/icon.png
طراحی نوع نمایش فایل های xml برای صفحه های نمایش با اندازه های مختلف (گوشی های مختلف)
نکته

هر فایل xml که برای یک دسته از گوشی ها با ((اندازه صفحه نمایش)) مشخص به کار می بریم، در واقع برای یک دسته از گوشی ها است که اندازه صفحه نمایش آنها، در یک بازه مشخص قرار می گیرد (اندازه آنها دقیقا یکسان نیست). بنابراین بهتر است عناصر به گونه ای تعریف شوند که در همین بازه نیز تغییرات چندانی نداشته باشیم.

نکته

اگر برنامه اندروید خیلی به اندازه صفحه نمایش و رزولوشن وابسته است، روش هایی وجود دارد که با آنها می توان مقدار پیکسل های صفحه نمایش را به دست آورد و سپس بر اساس آنها، عناصر را در صفحه قرار داد. اما این روش، توصیه نمی شود و همان طور که گفتیم، تنها برای برخی برنامه اندروید با هدف های خاص می تواند کاربرد داشته باشد (منظور این است که برای مواردی مناسب است که به دقت خیلی زیاد برای عدم تغییرات ظاهری عناصر صفحه نیاز داریم).

نکته

علاوه بر مواردی که شرح داده شد، بد نیست تذکر بدهیم که ممکن است که شما مثلا در یک Activity ، مقداری متن به کاربر نمایش بدهید و حجم متن ها هم زیاد باشد. هنگامی که بر روی یک گوشی با صفحه نمایش بزرگ، برنامه را تست می کنید، کل متن در صفحه نمایش قابل دیدن می باشد، اما بر روی یک گوشی با صفحه نمایش کوچک، ممکن است که تنها بخش کوچکی از متن در کل صفحه نمایش قرار بگیرد و کاربر نتواند ادامه متن را بخواند. برای حل این مشکل، ساخت صفحات با قابلیت اسکرول به بالا و پایین توصیه می شود که آن را در کلید شماره 259 شرح داده ایم.

نویسنده علیرضا گلمکانی
شماره کلید 239
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
مهدی
۱۳۹۶/۰۲/۱۴
۰۸:۱۱

سلام دوست عزیز
بنده یک مشکل دارم
جریان از این قراره که من از چگالی استفاده میکردم برای مولتی ساپورت اسکرین ولی خوب جواب نمیداد منظورماز چگالی استفاده از چهار چگالی اندروید هست
ولی دیروز متوجه شده یه تقسیم بندی دیگه هست بر اساس چهار نوع دیگر که اون بهتر عمل میکنه
خواستم کمی منو روشن تر کنید که کجا از چگالی استفداه میشه و کجا از همون روش چهار سایز (کوچک و نرمال , بزرگ و خیلی بزرگ)
ممنون میشم جوابم رو به ایمیلم ارسال کنید
سربلند باشید و بهروز

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)

جستجو در کلیدستان، توسط گوگل

جستجو در عنوان کلیدها

دسترسی سریع

کلید
×

شماره کلید


دسته بندی
×

شماره دسته کلید


جستجو
×

جستجو


کلمات کلیدی

راهنمای کلمات کلیدی (کلاس ها، توابع، عناصر و ...) در برنامه نویسی اندروید، بر اساس حرف اول کلمه کلیدی :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

developer.android.com