آموزش ساخت View سفارشی در اندروید

امتیاز 2.00 ( 1 رای )

سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش ساخت View سفارشی در اندروید خواهیم پرداخت در قبل آموزش ساخت View سفارشی یا همان Custom Component را قرار داده بودیم ولی در این آموزش یاد می گیرید چه طور با ساخت view سفارشی کد نویسی را در برنامه برای خودمان راحت تر کنیم با ما همراه باشید.
 
فکر کنید ما یک layout داریم که سه view در آن وجود دارد برای اینکه با هر کدام کار کنیم باید ابتدا آنها را پیدا کنیم (findviewby..) و برایشان کلیک و … را تعریف کنیم به نظر شما بهتر نیست که از یک view سفارشی استفاده کنیم ؟ که خودش یک view باشد ولی 3 مقدار ورودی را بپذیرد ؟ یعنی یک view داریم که می تواند سه کار محتلف را برای ما انجام دهد !
حالا چرا باید این کار را انجام دهیم ؟
اول این که باعث کاهش حجم dex در برنامه می شود.
دوم اینکه فقط ما با یک view کار خواهیم داشت.
سوم اینکه شاید بخش کد نویسی ساخت view سفارشی کمی سخت باشد ولی در بخش کد نویسی اکتیویتی ما خیلی راحت تر خواهیم بود چون فقط با یک view کار داریم !
ابتدای کار یک فایل در layout خود به نام custom_view.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

view های بالا همان view نهایی سفارشی ما است. کل کدهای بالا در آخر یک view به ما می دهند.
در مسیر res/values یک فایل به نام attrs.xml ایجاد کرده و کدهای زیر را قرار دهید.

کدهای بالا ویژگی های view ما برای set کردن از طریق layout را فراهم می کند. (در ادامه به آن اشاره خواهم کرد )
یک فایل جاوا به نام CustomView.java ایجاد کرده و کدهای زیر را در آن قرار دهید.

کدهای بالا متودهای قابل استفاده در اکتیویتی خواهند بود مثلا setArtistText مقدار متن مربوط به Artist را ست می کند و الی آخر…
حالا برای استفاده از آن در layout باید مثل زیر عمل کنیم.

در بالا به جای ir.programchi باید نام package خودتان را قرار دهید.
و app:artistText , app:trackText و app:buyButton یادتان باشد آن را در attrs تعریف کریدم
می توانید مقدار Text ها را با این مقادیر ست کنید.
و برای اینکه از طریق کد به آنها دسترسی داشته باشید مثل زیر عمل کنید.

شاید کد بالا شکل ظاهری خوبی برای شما ایجاد نکند ولی از نظر Function یا Functionally کامل است.
 
این آموزش هم به پایان رسید.
 
موفق و پیروز باشید.

مطالعه بیشتر