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

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ایجاد view سفارشی در برنامه نویسی اندروید می پردازیم منظور از view همان object هایی مثل TextView ImageView و… است با ما همراه باشید. این مبحث برای افرادی که تازه کار هستند باید خیلی جالب باشد ولی کمی سخت است.
ابتدای کار ما باید یک کلاس برای این View خودمان ایجاد کنیم به طور مثال چه ویژگی هایی باید داشته باشد پس یک کلاس به نام Programchi ایجاد می کنیم و از view گسترش (extends) می گیریم مثل زیر

ما از چند کلاس استفاده می کنیم پس کد های زیر را بعد از package قرار دهید .

حالا این کلاس را در همین حالا رها می کنیم در ادامه آن را تکمیل خواهیم کرد
وارد مسیر res/vlaues شده و یک فایل به نام attrs.xml ایجاد کنید.

در بالا ما داریم ویژگی های view خودمان را ایجاد می کنیم یعنی می تونیم از این ویژگی ها در layout خودمان استفاده کنیم در بالا دو تا ویژگی از نو  رنگ داریم یعنی ورودی رنگ را می پذیرند و یک string یا رشته برای دریافت متن.
شما باید در layout خودتان مقدار زیر را جلوی RelativeLayout یا LinerLayout قرار دهید.

دقت کنید به جای your.package.name باید نام پکیج خودتان قرار دهید.

در بالا view ما ایجاد شده است.
حالا کلاس اصلی ما کد آن به کشل زیر می شود.

کد بالا ادامه کلاس ما است در بالا ما آمیدم آن ویژگی ها که در attrs تعریف کردیم یعنی بتونیم هم از طریق xml یعنی layout خودمان و هم از طریق کد بتونیم به آن دسترسی داشته باشیم در بالا ما یک constructor تعریف کردیم بخش زیر

و سپس در ادامه اومدیم برای هر بخش یک متد تعریف کریدم به طور مثال قرار دادن متن در وسط  و گرد بودن آن به شکل دایره و برای اینکه رنگ و متن ما در view ما قرار گیرد invalidate بررسی می کند که خطایی رخ ندهد در صورت خطا دادن برنامه یک Exception ایجاد می کند و می توان از آن log گرفت. از TypedArray برای به دست آوردن مقادیر سفارشی layout است (یعنی مقدار های سفارشی ما رو دریافت می کند و در layout ست می کند منظور مقادیری است که در فایل xml یا همان view ما تنظیم می شود.) و برای اینکه ما یک شکل به صورت دایره مانند ایجاد کنیم از canvas استفاده کرده ایم. (بخشی از آن برای محسابه و بدست آوردن گردی نیم دایره استفاده شده است).
 
وحالا نحوه استفاده از آن به شکل زیر می شود.
استفاده از آن در layout

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

برای اینکه از ویژگی هایی که تعریف کردیم در اکتویتی از آن استفاده کنیم از کد زیر استفاده می کنیم.

 
این آموزش به پایان رسید .
 
موفق و موید باشید.

مطالعه بیشتر