نحوه ایجاد اسلایدر ابتدایی برای برنامه های اندروید

گاهی در برنامه های اندروید، نیاز به خوش آمدگویی یا نمایش یک پیام به کاربر پیدا می کنید. برای مثال می خواهید کاربر هنگام ورود به برنامه شما، با ویژگی های کلی برنامه ای که پیش رو دارد آشنا شود یا مثلا فقط می خواهید یک پیام ساده خوش آمدگویی به کاربر نشان دهید.

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

در این آموزش برنامه نویسی اندروید، می خواهیم کنتراست یک تصویر را تغییر دهیم. شما در این آموزش یاد می گیرید که چطور کنتراست یک تصویر را، به صورت رنگی یا به صورت سیاه و سفید تغییر دهید.

کنتراست چیست؟

کُنْتْراسْت به‌معنای تباین و جدایی است و یکی از اصل‌های پایه‌ایِ رشته‌های گوناگونِ هنر است. فرق و کشمکشِ متقابلِ عناصر اثر هنری موجب برقرار شدن ارتباطی منطقی ولی متضاد بین اجزا می‌شود و در تأثیرگذاری اثر بسیار مؤثر است، چراکه درک انسان از بسیاری چیزها با تجربه و مقایسهٔ شکل، کیفیت، و معناهای آنها به‌دست می‌آید.

تغییر تدریجیِ مقدار کنتراست در یک عکس در هنرهای تجسمی مانند نقاشی، عکاسی و گرافیک، کنتراست‌های رنگ، تیرگی ـ روشنی، اندازه، جهت، بافت، پهنی ـ باریکی، هندسی ـ غیرهندسی و… به‌کار می‌رود و اثر هنری را تأثیرگذار می‌کند.

برای نمونه، رامبراند معمولاً از کنتراست شدید تیرگی ـ روشنی بهره گرفته و با تاباندن نور در بخش‌های موردنظرش، که درمیان سایه‌های تیرهٔ وسیع در تابلو قرار گرفته‌اند، بر این بخش‌ها تأکید می‌کند.

[منبع: ویکی پدیا]

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

 

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

 

خوب! تا اینجای کار، ما کنتراست سیاه و سفید تصویر را به دست آورده ایم. که می توانید نتیجه را در ادامه مشاهده کنید.

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - تغییر کنتراست رنگی و سیاه و سفید تصویر

این هم نتیجه کار:

برنامه نویسی اندروید - تغییر کنتراست رنگی و سیاه و سفید تصویر

حالا اگر بخواهیم کنتراست رنگی را تغییر دهیم، دستورات موجود در اکتیویتی را به صورت زیر تغییر می دهیم:

 

این هم نتیجه کار:

برنامه نویسی اندروید - تغییر کنتراست رنگی و سیاه و سفید تصویر

من مقدار ۱۰۰ رو به عنوان ورودی تابع در نظر گرفتم. با تغییر این مقدار، می توانید میزان کنتراست های متفاوتی به دست آورید.

Sepia-toning، یک افکت بسیار زیبا است که با اعمال آن روی تصویر، رنگ تصویر تغییر کرده و چیزی مانند تصویر زیر حاصل می شود:

برنامه نویسی اندروید - اعمال افکت Sepia-toning روی تصویر

در این آموزش، برنامه ای خواهیم نوشت که در این برنامه، با کلیک روی یک دکمه، تصویر موجود در ImageView تغییر رنگ خواهد داد.

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - اعمال افکت Sepia-toning روی تصویر

این هم نتیجه کار:

برنامه نویسی اندروید - اعمال افکت Sepia-toning روی تصویر

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

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

 

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

تصویر اصلی من:

برنامه نویسی اندروید - اضافه کردن نوشته روی تصویر

این هم نتیجه کار (نوشته به رنگ سبز):

برنامه نویسی اندروید - اضافه کردن نوشته روی تصویر

یک نمونه دیگر (نوشته رنگ زرد و زیرخط دار):

برنامه نویسی اندروید - اضافه کردن نوشته روی تصویر

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

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

بهتر است شروع کنیم تا منظور من را بهتر متوجه شوید.

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

تصویر اصلی من یک مربع قرمز رنگ است:

برنامه نویسی اندروید - هایلایت کردن تصویر

تصویر من بعد از اجرای برنامه و قبل از فشردن دکمه (پس زمینه را سیاه کرده ام):

برنامه نویسی اندروید - هایلایت کردن تصویر

حالا اگر دکمه را فشار دهم یک سایه سفید رنگ که همان هایلات است برای تصویر ایجاد می شود:

برنامه نویسی اندروید - هایلایت کردن تصویر

می توانید سایه را یک رنگ تیره انتخاب کرده و پس زمینه را برای LinearLayout در فایل activity_main.xml برابر با ffffff# قرار دهید.

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

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

همانطور که می بینید، ما نیاز به یک کلاس دگیر با نام ConvolutionMatrix داریم تا عملیات مروبط به ایجاد افکت و تغییرات روی تصویر را انجام دهد. یک اکتیویتی جدید به با همین نام ایجاد کرده و دستورات زیر را درون آن قرار دهید:

توجه داشته باشید که کلاس ConvolutionMatrix یک کلاس آماده است که در برنامه های قبل هم از آن استفاده کرده ایم و شاید در آینده هم از آن استفاده کنیم.

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - Gaussian Blur

این هم نتیجه کار:

برنامه نویسی اندروید - Gaussian Blur

در آموزش برنامه نویسی، به درخواست یکی از کاربران، با هم برنامه ای خواهیم نوشت که موزیک های موجود در پوشه raw را در یک لیست ویو جمع آوری می کند و با لمس هر آیتم از ListView آهنگ مورد نظر شروع به پخش می کند.

خوب ابتدا یک پروژه جدید ایجاد کنید. در پوشه res یک پوشه جدید با نام raw بسازید و چند آهنگ در آن قرار دهید. من ۳ آهنگ با نام های sedaye1 و sedaye2 و sedaye3 در این پوشه کپی کرده ام.

حالا لایوت برنامه یعنی فایل activity_main.xml را باز کرده و یک listview به آن اضافه کنید:

و این هم دستورات مربوط به اکتیویتی MainActivity.java:

توضیحات مربوط به کدها، بالای هر دستور ذکر شده است.

دقت کنید که من از ۳ فایل صوتی استفاده کرده ام. اگر شما فایل های بیشتری دارید، باید نام آنها را در آرایه musicha و آدرس آنها را در آرایه resID وارد کنید.

نکته دیگر این که این برنامه به دسترسی خاصی نیاز ندارد.

تصویری از برنامه اجرا شده در گوشی:

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

این برنامه تست شده و کاملا قابل اجرا روی گوشی می باشد. می توانید فایل نصبی آن را در ادامه دانلود کنید.

در این آموزش، با افکت Mean Removal آشنا خواهید شد. اگر آموزش های قبلی را دنبال کرده باشید، حتما با کلاس جاوای ConvolutionMatrix آشنا هستید. برای اعمال این افکت روی تصویر هم باید از کلاس ConvolutionMatrix استفاده کنیم.

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

و این هم دستورات مربوط به کلاس ConvolutionMatrix:

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - افکت Mean Removal

این هم نتیجه کار:

برنامه نویسی اندروید - افکت Mean Removal

در این آموزش یاد خواهید گرفت که چطور حالت محو شدگی به تصویر موجود در ImageView اعمال کنید. در این آموزش با افکت Smooth آشنا می شوید که تصویر شما را کمی محو می کند.

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

همانطور که می بینید، ما نیاز به یک کلاس دگیر با نام ConvolutionMatrix داریم تا عملیات مروبط به ایجاد افکت و تغییرات روی تصویر را انجام دهد. یک اکتیویتی جدید به با همین نام ایجاد کرده و دستورات زیر را درون آن قرار دهید:

توجه داشته باشید که کلاس ConvolutionMatrix یک کلاس آماده است که در برنامه های قبل هم از آن استفاده کرده ایم و شاید در آینده هم از آن استفاده کنیم.

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - محو شدگی تصویر

این هم نتیجه کار:

برنامه نویسی اندروید - محو شدگی تصویر

من مقدار ۵ رو به عنوان ورودی تابع در نظر گرفتم. با تغییر این مقدار، می توانید میزان محوشدگی یا smooth تصویر را تغییر دهید.

در این آموزش، یک برنامه اندرویدی خواهیم نوشت که با کلیک روی یک دکمه، تصویر موجو در ImageView به رنگ خاکستری تغییر رنگ خواهد کرد.

پروژه جدیدی با حداقل SDK مورد نیاز ۱۰ ایجاد کنید و لایوت اصلی (activity_main.xml) را باز کنید. در این لایوت، یک button و یک imageView به شکل زیر وارد کنید:

پوشه ای با نام drawable هم در پوشه res ایجاد کرده و یک تصویر دلخواه در آن قرار دهید. من نام این تصویر را image گذاشته ام.

حالا دستورات زیر را در اکتیویتی اصلی برنامه کپی کنید:

تصویر اصلی چیزی شبیه به تصویر زیر خواهد بود:

برنامه نویسی اندروید - خاکستری کردن تصویر

این هم نتیجه کار:

برنامه نویسی اندروید - خاکستری کردن تصویر