در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
همانطور که در شماره پیش گفته شد، یک برنامه با یک رابط کاربر یک Activity است، منظور از Activity یک صفحه برنامه است، ساختارهای UI که کتابخانه عظیم اندروید که به شما عرضه میکند، ساختاری سلسله مراتبی دارند، چیزی شبیه به WPFکه در شمارههای پیش در مورد آن صحبت کردهایم، یک المان View میتواند شامل چند المان سطح باشد، یا یکسری المانها که به آنها ViewGroup گفته میشود، شامل گروهی از المانهای دیگر است مثل ListView و....
هر Activity شامل یک View است و خود View میتواند شامل چند View دیگر باشد. فایلهای UI در پوشه res/layout قرار دارند، یعنی هر Activity فایل مربوط به UI خود را با توجه به تعریف شما در کد Activity بارگذاری میکند. البته بهصورت پیش فرض از پوشه layout خوانده میشود؛ اما اگر شما بخواهید برنامه شما منعطف باشد، یعنی زمانی که برنامه شما در حالت landscape یا حالت QVGA است، میتوانید ظاهر دلخواه و مربوط به هر بخش را تعریف کنید، در این صورت بر اثر Rotate کردن گوشی، شما برای هر حالت یک UI مستقل دارید، برای اینکار کافی است در پوشه res یک پوشه برای layout خود اختصاص دهید.
اما چگونه؟ به کدهای زیر دقت کنید:
res/layout/my_layout.xml
res/layout-small/my_layout.xml
res/layout-large/my_layout.xml
res/layout-xlarge/my_layout.xml
res/layout-xlarge-land/my_layout.xml
همانطور که میبینید همه آنها برای تعریف Layout استفاده میشوند، بعد از اسم layout مشخص شده فایلی که درون پوشه است برای چه حالتی مورد استفاده قرار میگیرد، خود سیستم عامل اندروید براساس وضعیت دستگاهی که برنامه را اجرا میکند، یکی از این فایلهای layout را برمیگزیند.
بسیار خب حالا برویم سراغ Viewها یا همان المانهای درگیر در UI، وقتی شما فایل XML را که شامل المانهای ظاهری خودتان است با استفاده از Eclipse باز میکنید، بهصورت پیشفرض با Android Layout Editor باز میشود، سپس در این حالت شما میتوانید ظاهر آن را به دلخواه خود تغییر دهید و المانها را ویرایش کنید، اما شما چه المانهایی را میتوانید مورد استفاده قرار دهید؟
المانها را بهصورت گروهی معرفی خواهیم کرد
Form Widgets: المانهای سادهای هستند که در یک فرم مورد استفاده قرار میگیرند؛ مثلا شامل Buttonها، ComboBox، RadioButton، CheckBox و... است.
Text Fields: المانهایی برای گرفتن مقدار یک عبارت رشتهای استفاده میشوند، این المانها براساس مقادیری که شما میخواهید از کاربر برنامه خود بگیرید، متفاوت است.
Layouts: المانهای بالایی در واقع Root یک Layout هستند در این دسته قرار دارند، برای مثال:
1ـ LinearLayout که المانها را به صورت خطی در امتداد هم قرار میدهد، شبیه StackPanel در WPF است، شما میتوانید مشخص کنید المانها بهصورت افقی یا عمودی کنار هم چیده شوند.
2ـ Relative Layout که به المانها موقعیت میدهد مثلا شما مشخص میکنید که یک المان مشخص از بالای صفحه X مقدار فاصله دارد و از پایین صفحه Y مقدار.
3ـ TableLayout که یک ساختاری شبیه Tableها در HTML را مشخص میکند یا Grid در WPF، این ساختار نسبت به موارد مشابه آن که ذکر شد کمی ضعیفتر است، آن هم این است که فقط میتواند شامل Row باشد، یعنی شما نمیتوانید المانها را در یک ستون قرار دهید.
4ـ TableRow یک سطر در یک TableLayout را مشخص میکند.
(البته المانهای دیگر نیز وجود دارند اما به علت کاربرد محدودتر، از توضیح در مورد آن خودداری کردهایم).
Composite: المانهای پیچیدهتری را شامل میشود، بعضی از این المانها مانند آنچه در بالا توضیح داده شد، هستند. بهطور مثال GridView شبیه به TableLayout عمل میکند با این تفاوت که شما میتوانید در آن ستون نیز تعریف کنید، یا ScrollView، این المان بهصورت Scroll است که در حالت HorizontalView نیز وجود دارد و شبیه LinearLayout است؛ البته کاربرد این المانها با بقیه المانها متفاوت است.
از دیگر المانهای این دسته میتوان به SearchView، SlidingDrawer و TabHost، TabWidget، WebView اشاره کرد.
Image and Media: در این بخش المانهایی قرار دارد که مربوط به عکس و تصویر است، مثل ImageView، VideoView، Gallery،...
Time and Date: برای نمایش و انتخاب ساعت و تاریخ در برنامه مورد استفاده قرار میگیرد که شامل CalenderView، Chronometer، TimePicker، DatePicker و... است.
Transition: برای انیمیشنها مورد استفاده قرار میگیرد، ImageSwitcher، AdapterViewFlipper و... را شامل میشود.
Advanced: المانهایی هستند که حالت پیشرفتهتری نسبت به بقیه المانها دارند و کاربرد آنها خیلی خاص میشود، بهعنوان مثال SurfaceView که شامل Z-Index است برای نمایش سایر المانها روی یک المان، مثلا ZoomControl که برای Zoom-In و Zoom-Out کردن مورد استفاده قرار میگیرد و المانهای دیگر مانند NumberPicker، GestureOverlayView، ViewStub، View و....
امیر بهاءالدین سبطالشیخ
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: