میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

فایل های محتوا (Resources) قسمت دوم

فایل های  Layout ( فایل های چیدمان رابط کاربری )

Activity ها (یا فرم ها در اندروید) ظاهر و UI خود را با استفاده از viewها ( widget یا ابزارک های رابط کاربری) و fragment ها می سازند. در سیستم عامل اندروید کدهای مربوط به چیدمان المان های UI و طراحی رابط کاربری در قالب فایل های محتوا مبتنی بر XML در پوشه ی _ filename class=”filename”>/res/layout> تعریف می شوند یا در قالب کد جاوا نوشته و ذخیره می گردند. در صورت تمایل می توانید تلفیقی از دو روش را بکار ببرید، هر چند روش اول بیشتر توصیه می شود. بدین وسیله می توان منطق برنامه ( programming logic ) را از ظاهر آن ( layout definition ) جدا کرد. همچنین این امکان بوجود می آید که برای هر دستگاه ظاهر و فایل layout ویژه ای تعریف نمایید.

فایل محتوا ( resource file ) که کدهای UI برنامه از آن خوانده می شوند در اصطلاح برنامه نویسی اندروید layout گفته می شود. Layout یا فایل تنظیم چیدمان المان های رابط کاربری تمامی viewها، ViewGroupها و رابطه میان آن ها و attributeهای آن ها را در قالب فایل های XML تعریف می کنند.

کد زیر یک نمونه ساده از فایل layout را به نمایش می گذارد.

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/mytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>  

 

فایل layout با فراخوانی متد setContentView به یک activity جهت نمایش در UI تخصیص می یابد، مانند زیر:

 

 

package com.vogella.android.first;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

 


افزایش سرعت و کارایی با استفاده از layoutهای ساده

محاسبه، پردازش و ترسیم viewها یک عملیات سنگین بوده و منابع و محتوای حجیمی را شامل می شود. شما بایستی تا حد امکان از layout های ساده استفاده نمایید تا سرعت اجرا و کارایی کلی برنامه بهبود یابد. برای مثال، بهتر است در شرایطی که یک layout managerساده کفایت می کند، از تودرتو سازی بیش از حد layout managerها خودداری نمایید.

 


رهنمودها و روش های بهینه در خصوص IDهای اختصاص داده شده به فایل های محتوا/resource

به منظور دسترسی به یک view از کد جاوا یا ،XML لازم است با تنظیم مقدار attribute ای به نام ،android:id به view دلخواه ID یا شناسه ی منحصر بفردی تخصیص دهید. جهت تخصیص یک ID جدید به view مورد نظر، کافی است خصیصه ی  ndroid:id از المان متناظر را در فایل layout با مقدار دلخواه تنظیم نمایید

SDK یا مجموعه ابزار ساخت توسعه برنامه های اندرویدی، از سیستم نشانه گذاری camelCase برای نگارش مقدار ID بهره می گیرد.
مثال: .buttonRefresh توصیه می شود شما نیز از همین سیستم استفاده نمایید.
در نمونه ی زیر می بینید که با تنظیم مقدار attribute نام برده (خصیصه ی android:id المان مربوطه) بر روی پارامتر رشته ای ” ،”
id/button1@+ به المان دکمه یک شناسه ی منحصر بفرد اختصاص داده می شود. طبق قراردادهای تعریف شده، این دستور یک ID جدید در فایل R.java ایجاد کرده و سپس آن را به view مربوطه انتساب می دهد.

 

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Preferences" >
</Button>

توصیه می شود تمامی IDها را در یک فایل تنظیمات ( Config ) واحد تعریف نمایید. این فایل معمولا ids.xml نام گذاری شده و در پوشه ی /res/values جایگذاری می شود. با این کار شما می توانید IDهای از پیش تعریف شده را در فایل layout مورد استفاده قرار دهید. لازم به ذکر است که شما می توانید IDها را در فایل جداگانه تعریف نمایید، اما در آن صورت بایستی آیتم id@+ را از فایل های layout خود حذف نمایید چرا که در غیر این صورت با یک پیغام خطا مبنی بر اینکه این فایل ها قبلا ساخته شده اند مواجه می شوید. کد زیر نمونه ای از این فایل را به نمایش می گذارد.

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="button1" type="id"/>
</resources>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginRight="27dp"
android:text="Button" />
</RelativeLayout>

توجه: روشی که هم اکنون از آن نام برده شده برای پروژه های واقعی بسیار کارامد و مناسب می باشد. اما در آموزش حاضر، به علت زمان بر بودن این پروسه، مورد استفاده قرار نمی گیرد.

 


محتوای و منابعی که توسط سیستم اندروید ارائه می شود ( system resources )

سیستم اندروید خود نیز محتوا و resource ارائه می دهد. به این محتویات و منابع system resources گفته می شود. فایل های resource که خود سیستم در اختیار برنامه نویس قرار می دهد توسط پیشوند androidاز دیگر فایل های محتوا ( local resource ) متمایز می شوند.

به عنوان مثال android.R.string.cancel یک string است که محیط اندروید ( platform ) ویژه ی عملیات cancel تعریف می کند


 

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

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟