نام‌نویسی
پس از تکمیل اطلاعات زیر، گذرواژه برای شما ارسال می‌شود.

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

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

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

layout

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

آشنایی با لی آوت ها

لی آوت ها در واقع طرز قرار گرفتن اشیاء را در داخل برنامه طرح بندی می کنند. برای مثال فرض می کنیم در یک صفحه از برنامه ما 4 کلید داریم و مثلا 2 تکست بکس برای متن و شاید 3 عدد کانتینر  تصویر داریم. قصد ما این است که کلید ها از بالا به پایین در سمت راست چیده شوند و من ها در وسط تصویر جای بگیرند و کانتیر ها هم در پایین صفحه به شکل افقی نمایش داده شوند. ما در این تصویر حداقل به 4 لی آوت نیاز داریم.

شرح مثال مطرح شده

باید یک لی آوت داشته باشیم تا کلید ها به شکل عمودی از بالا در آن قرار گیرند چرا که احتمالا برنامه نویسی مشابه هم خواهند داشت. یک لی آوت باید برای متن ها کار بگذاریم تا مکان آن ها را در میانه ی تصویر تثبیت کنیم و درصفحه فقط از لی آوت مرکزی خود دستور موقعیت مکانی را در یافت کند. لی آوت سوم باید برای کانتینر های تصائیر ایجاد شود و کانتینر ها در درون آن قرار گیرد. نکته این جاست که باید لی آوت کلید ها عمودی و لی آوت کانتینر ها افقی ایجاد شوند و نوع لی آوت متن ها هم از نوع معمولی اتخاب شود. لی آوت چهارم برای این در نظر گرفته می شود که همه ی لی آوت های دیگر در درون آن قرار گیرند و در واقع لی آوت اصلی نام بگیرد. اگر یک شی دیگر وجود داشت که در داخل هیچ کدام از لی آوت های داخلی قرار نداشته باشد از خواص لی آوت اصلی برخوردار خواهد بود. دقت شود تمام اشیایی که در داخل هر لی آوت قرار می گیرند آن را به عنوان لی آوت والد می شناسند و ویژگی های آن را به طور پیش فرض قبول می کنند.

layout

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

لی آوت های خطی افقی: این لی آوت ها در واقع به شکل افقی اقدام به چیدن اشیاء درون خود می کنند و اولین شیء که در درون آن قرار گرفت شیء بعدی در کنار آن به شکل افقی قرار می گیرد و با توجه به جاذبه ی تعیین شده بالا وپایین بودن اشیاء نیز تعیین می شود. جاذبه یا Gravity یک ویژگی است که در ادامه به آن خواهیم پرداخت.
آموزش برنامه نویسی اندروید قسمت ششم

لی آوت های خطی عمودی: این لی آوت ها در واقع به شکل عمود اقدام به چیدن اشیاء درون خود می کنند و اولین شیء که در درون آن قرار گرفت شیء بعدی در کنار آن به شکل عمود قرار می گیرد و با توجه به جاذبه ی تعیین شده بالا وپایین بودن اشیاء نیز تعیین می شود. جاذبه یا Gravity یک ویژگی است که در ادامه به آنن خواهیم پرداخت.

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

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

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

gravity یا جاذبه: اگر برنامه نویسی سی شارپ را به طور مبتدی حتی کار کرده باشید با این مفهمو باید آشنا باشید. در آن جا هم این مفهوم برای ما تداعی مشود. حتی در بحث وب نیز ما این مفهوم را داریم تحت عنوان float یا شناوری. در وب اگر float یک عنصر را برابر مقدار 1 قرار دهیم آن تصویر به شکل شناور در صفحه برای ما آشکار می شود. gravity هم در اندروید و سی شارپ دقیقا همین کار را برای ما انجام می دهد. هر عنصور در فایل گرافیکی دارای ویژگی های زیادی است که بعضی از آن ها مشترک اند و بعضی ها هم منحصربه فرد هستند. برای مثال اگر جاذبه ی یک لی آوت را به بالا قرار دهیم همه ی اشیاء درون آن به بالا می چسبند و یا اگر جاذبه را در یک کلید به پایین قرار دهیم متنی که برای آن می نویسی به کف کلید خواهد چسبید.

فایل XML برای شروع کار با یک لی آوت با اسکرول عمودی:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent” در این دو خط گرفتن خاصیت طول و عرض از والد ست شده است
android:orientation=”vertical”> و جهت گیری لی آوت به شکل عمودی صورت می گیرد

<ScrollView  ویویی که اسکرول را برای ما رقم خواهد زد
android:layout_width=”match_parent”
android:layout_height=”match_parent” طول و عرض باز هم از والد گرفته می شود
android:orientation=”vertical”> و حالت اسکرول نیز به شکل پیش فرض عمودی است

<RadioGroup  رایدو گروه اول
android:id=”@+id/radioSharing” اسم و سایر مشخصات کلی آن را داریم
android:layout_width=”wrap_content” عرض متناسب با کل شکل ست شده است
android:layout_height=”wrap_content” > طول متنسب با کل شکل ست شده

<RadioButton کلید اول
android:id=”@+id/radioSharingYes”( نام کلید(شما برای این تنظیمات هر تنظیم و متن جایگزین می توانید اضافه کنید
android:layout_width=”wrap_content” عرض متناسب
android:layout_height=”wrap_content” طول متناسب
android:text=”@string/radio_sharing_yes” /> متنی که در فایل متن ها ذخیره شده و مقدار دهی اینجا صورت گرفته است.

<RadioButton کلید دوم
android:id=”@+id/radioSharingNo”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_sharing_no” />

</RadioGroup>

<RadioGroup
android:id=”@+id/radioInternet” ( نام کلید(شما برای این تنظیمات هر تنظیم و متن جایگزین می توانید اضافه کنید

android:layout_width=”wrap_content” عرض متناسب
android:layout_height=”wrap_content” > ارتفاع متناسب

<RadioButton کلید سوم
android:id=”@+id/radioInternetYes” اسم و آی دی
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” طول و عرض متناسب با شکل کلی به شکل پیش فرض
android:text=”@string/radio_internet_yes” />

<RadioButton کلید چهارم
android:id=”@+id/radioInternetNo” اسم
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”  عرض و طول مقدار دهی شدند
android:text=”@string/radio_internet_no” /> و فراخوانی مقدار متن ست شده

</RadioGroup>

<RadioGroup کلید پنجم
android:id=”@+id/radioMap” آی دی
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” > طول و عرض ها

<RadioButton
android:id=”@+id/radioMapYes”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_map_yes” />

<RadioButton
android:id=”@+id/radioMapNo”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_map_no” />

</RadioGroup>

<RadioGroup رادیو گروه دو
android:id=”@+id/radioCalling” اسم  و ویژگی ها
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” > طول ها و عرض ها

<RadioButton کلید ها
android:id=”@+id/radioCallingYes”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_calling_yes” />

<RadioButton
android:id=”@+id/radioCallingNo”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_calling_no” />

</RadioGroup>

<RadioGroup
android:id=”@+id/radioDatabase”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” >

<RadioButton
android:id=”@+id/radioDatabaseYes”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_database_yes” />

<RadioButton
android:id=”@+id/radioDatabaseNo”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_database_no” />

</RadioGroup>

<Button کلید معمولی
android:id=”@+id/btnSave” اسم و متن و سایر ویژگی های کلید
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_marginTop=”30dp” مارجین یا همان فاصله از بالا
android:text=”@string/btn_display” />

</LinearLayout> بستن لی آوت
</ScrollView> بستن خاصیتی که به لی آوت ما اسکرول شدن را می دهد

در این قسمت باید چند نکته را برای شما گوشزد کنیم:

این لی آوت را می توانید با استفاده از ویزارد هم به پروژه ی خود اضافه کنید و حتما و الزامی نیست که با کد نویسی این کار را انجام دهید در سطح بعدی که صرفا با ویزارد هستیم این مسایل را نخواهیم داشت.

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

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

بعضی اتریبوت ها هم از قبل به طور پیش فرض ست شده اند اگر قصد تغییر هدفمند آن ها را ندارید به آن ها دست نزنید چراکه موجب سردرگمی بعدی شما می شوند.

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

هر تغییری ه در هر کدام از فایل ها انجام می دهید با کامنت آن را شرح دهید:

تا هم بعدا مورد استفاده و تفهیم باشد و همینطور به هنگام تحلیل فایل بدانید چه تغییراتی را انجام داده اید:         <- – متن کامنتی – -!>

<!–

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

RadioButton
android:id=”@+id/radioDatabaseNo”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/radio_database_no” />

–>

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

public class DisplayRandomPage extends Activity {

    private Integer [] mLinearLayoutIds = { 
    R.layout.one
    R.layout.two,
    R.layout.three
    };
     اسم چندین لی آوت را که می خواهیم در یک آرایه چند بعدی می ریزیم و از آن استفاده می کنیم
    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 


Random random = new java.util.Random(); 
یک عدد تصادفی رندم را تولید می کنیم  که اندازه ی آن عددی بین 1 تا 3 ایت
int rand = random.nextInt(3);
این عدد را به مقدار رندر کننده ی لی آوت می دهیم
setContentView(mLinearLayoutIds[rand]);
        }
}

نوع دیگر استفاده می تواند به شکل زیر باشد: در این مدل می خواهیم به چند کلاس مختلف در صورت نیاز امکان استفاده از یک لی آوت را بدیهم:

switch (view.getId()) { می گوییم اگر کلید شماره یک فشار داده شده بود کلاس یک را اجرا کن case R.id.first_button: startActivity(new Intent(this, FirstPage.class)); break; case R.id.second_button: اگر کلید دو فشار داده شد همان لی آوت را برای کلاس دو فرا خوانی بکن startActivity(new Intent(this, SecondPage.class)); break; case R.id.third_button: اگر کلید سوم را فشار داد کاربر به لی آوت دست نزن و کلاس سوم را اجرا کن اگر لی آوت آن چیز دیگری بود آن موقع آن را بخوان startActivity(new Intent(this, ThirdPage.class)); break; case R.id.random_button: به شکل دلخواه عمل کن و به شکل رندم یا تصادفی یک کلاس و لی آوت را نمایش بده Intent intent = new Intent(this, DisplayRandomPage.class); startActivity(intent); layout

پیوست

Leave a Reply

Your email address will not be published.

Developed by Nasour Naghipour