0

آموزش برنامه نویسی اندروید

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

آموزش برنامه نویسی اندروید قسمت ۳۲: آشنایی با واحد Hexadecimal
سه شنبه 1 بهمن 1392  11:03 AM


در این آموزش قصد داریم تا به طور خلاصه مبحث رنگ در توسعه اپلیکیشن را مورد بررسی قرار دهیم. شاید تاکنون مشاهده کرده باشید که در CSS مثلاً به منظور نشان دادن رنگ سفید از کد #ffffff استفاده می شود. در این آموزش خواهیم فهمید که به چه نحوی می توانیم به تحلیل کد فوق پرداخته و از این پس کد رنگ مد نظرمان را بنویسیم (به خاطر داشته باشیم که علامت # در زبان انگلیسی Hash Mark یا Pound Sign نامیده می شود).

به طور کلی سیستم Hexadecimal یک سیستم نامگذاری است که بر پایه عدد 16 می باشد که در آن اعداد 0 تا 9 نشانگر اعداد صفر تا نه بوده به علاوه حروف a، b، c، d، e، f که به ترتیب حرف a نشانگر عدد 10 است، حرف b نشانگر عدد 11 است، حرف c نشانگر عدد 12 است، حرف d نشانگر عدد 13 است، حرف e نشانگر عدد 14 است و در نهایت حرف f نشانگر عدد 15 است. فایده استفاده از اعداد Hexadecimal این است برنامه نویس یا طراح بهتر می تواند آنها را بخواند چرا که در آن هر هشت بیت با کنار هم قرار گرفتن دو Digit که می توانند هم یکی از اعداد بالا باشند و هم یکی از حروف بالا و یا ترکیبی از هر دو آنها نمایش داده می شود.

کد #ffffff تحت عنوان RGB بیست و چهار بیتی شناخته می شود. به عبارت دیگر دو f اول مربوط به R است که مخفف واژه Red به معنی"قرمز"می باشد، دو f دوم مربوط به G است که مخفف واژه Green به معنی "سبز" بوده و در نهایت دو f سوم مربوط به B است که مخفف Blue به معنی "آبی" می باشد.

حال همین کد را می توانیم به ARGB سی و دو بیتی تبدیل کنیم که اینکار با اضافه کردن دو f دیگر به ابتدای کد فوق صورت می گیرد. به عبارت دیگر کد ما به صورت #ffffffff در خواهد آمد. در واقع این دو f جدید نماینده آلفا هستند که این وظیفه را دارا است که رنگ ما را به مقداری که تمایل داریم محو سازد.

اکنون با مد نظر قرار دادن توضیحات فوق می توان این نتیجه را گرفت که هر یک از رنگ های قرمز، سبز، آبی و آلفا هشت بیت را به خود اختصاص می دهند:

920704-a32-IMAGE1.jpg

حال ببینیم که هشت بیت به چه معنا است. در حقیقت هر عدد هشت بیتی از 0 تا 255 را می تواند شامل شود که با هشت عدد که ترکیبی از 0 و 1 هستند می توان آن را نمایش داد. در حقیقت این 0 و 1 همان دو عدد معروفی هستند که تحت عنوان Binary Numbering System شناخته شده و در کامپیوترها مورد استفاده قرار می گیرند.


نحوه استفاده از ماشین حساب ویندوز برای تبدیل واحدها

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


920704-a32-IMAGE2.jpg

همانطور که در تصویر فوق مشاهده می شود، پس از اجرای کردن نرم افزار Calculator خود سیستم عامل ویندوز به منوی اصلی روی گزینه View کلیک کرده سپس گزینه Programmer را انتخاب می کنیم:


920704-a32-IMAGE3.jpg

حال می بینیم که گزینه های بیشتری به این ماشین حساب اضافه شده است. همانطور که در تصویر فوق ملاحظه می شود، گزینه Dec که مخفف واژه Decimal است انتخاب شده است. زمانیکه این گزینه انتخاب شده باشد می توانیم عدد هشت بیتی خود که از 0 تا 255 است را وارد کنیم. به طور مثال عدد 255 را وارد می کنیم:


920704-a32-IMAGE4.jpg

حال همانطور که در تصویر فوق مشخص شده است روی گزینه Hex کلیک می کنیم که با اینکار به معادل Hexadecimal عدد هشت بیتی 255 دست خواهیم یافت:


920704-a32-IMAGE5.jpg

همانطور که در تصویر فوق ملاحظه می شود معادل FF برای عدد هشت بیتی 255 در نظر گرفته می شود. برای درک بهتر مطالب فوق اقدام به ساخت یک رنگ جدید می کنیم به این صورت که می خواهیم رنگ ما از 255 واحد رنگدانه قرمزی که دارد 150 واحد آن را استفاد کنیم، از 255 واحد سبزی که داریم کل آن 255 واحد رنگدانه را اضافه کنیم و در نهایت 50 واحد از 255 واحد مرتبط با رنگدانه آبی را نیز مورد استفاده قرار دهیم(در این مثال از آلفا استفاده نمی کنیم). به طور خلاصه:


920704-a32-IMAGE6.jpg

حال برای تبدیل واحدهای فوق مجدداً به ماشین حساب ویندوز رجوع می کنیم به این صورت که اول می خواهیم معادل Hexadecimal رنگ قرمز را محاسبه کنیم. برای این منظور عدد 150 را با انتخاب حالت Dec وارد کرده سپس روی گزینه Hex کلیک می کنیم:


920704-a32-IMAGE7.jpg

همانطور که در تصویر فوق ملاحظه می شود، معادل Hexadecimal عدد 150 معادل با 96 است. سپس ماشین حساب را صفر کرده، آن را در حالت Dec قرار می دهیم و برای محاسبه رنگ سبز عدد 255 را وارد می کنیم و مجدد روی گزینه Hex کلیک می کنیم:


920704-a32-IMAGE8.jpg

می بینیم که معادل Hexadecimal عدد 255 معادل با FF است. در نهایت برای مشخص کردن رنگ آبی مجدد ماشین حساب را صفر کرده، آن را در حالت Dec قرار داده و عدد 50 را وارد می کنیم:


920704-a32-IMAGE9.jpg

همانطور که در تصویر فوق ملاحظه می شود پس از کلیک کردن روی گزینه Hex عدد 32 نمایش داده خواهد شد. حال به طور خلاصه رنگ ساخته شده ما به صورت زیر خواهد بود:


920704-a32-IMAGE10.jpg

یعنی رنگی با کد #96FF32 رنگی است که 150 رنگ دانه قرمز دارد، رنگ سبز کاملاً در آن استفاده شده است و مقدار آبی آن معادل با 50 است.

اکنون اگر بخواهیم ببینم که کد فوق در صفحات مانیتور به چه رنگ است می توانیم عکس زیر را مد نظر قرار دهیم:


920704-a32-IMAGE11.jpg

به خاطر داشته باشیم که برای حروف در مقادیر Hexadecimal می توان هم از حروف بزرگ به صورت FF و هم از حروف کوچک به صورت ff استفاده کرد (به نظر می رسد اگر یک رویکدر ثابت را همواره در کدنویسی اتخاذ کنیم در زمان ویرایش کد خود کمتر دچار سر در گمی شویم).

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