مشخصات مقاله
-
3600
-
0.0
-
3529
-
0
-
1
برنامه نویسی تحت اندروید با استفاده از Resource
استفاده از منابع (resources )
دادن ارجاع به منابع در کد
کلاس Resources دسترسی به تک تک منابع را فراهم می کند . می توان از طریق متد getResources () کلاس Context به نمونه ای از کلاس Resources دست یافت . activities و services هر دو, کلاس Context را بسط می دهند و بهمین دلیل می توانید مستقیماً از متد مذکور برای پیاده سازی این کامپوننت ها بهره بگیرید .
دیگر framework class های اندروید نیز به نمونه ی کلاس Resources نیاز دارند . برای مثال, کد زیر نحوه ی ایجاد فایل Bitmap را از شناسه ارجاع (reference ID ) نمایش می دهد .
// BitmapFactory requires an instance of the Resource class
BitmapFactory.decodeResource(getResources(), R.drawable.ic_action_search);
دسترسی به views از طریق طرح کلی در activity
در activity می توانید با استفاده از متد (findViewById(id به دنبال view مورد نظر (داخل layout جاری) بگردید . id همان خصیصه ی شناسه ی view (در layout ) می باشد . نحوه ی استفاده از این متد در کد زیر به نمایش گذاشته شده :
package com.vogella.android.first;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = (TextView) findViewById(R.id.mytext);
// TODO do something with the TextView
}
}
این امکان وجود دارد که با استفاده از متد (findViewById(id در سلسله مراتب view به دنبال کد مورد نظر گشت . توجه خود را به تکه کد (snippet) زیر جلب کنید .
// search in the layout of the activity
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.mylayout);
// afterwards search in linearLayout for another view
TextView textView = (TextView) linearLayout.findViewById(R.id.mytext);
// note, you could have directly searched for R.id.mytext, the above coding
// is just for demonstration purposes
دادن ارجاع به منابع در فایل های XML
در فایل های XML, می توان با استفاده از @ به دیگر منابع ارجاع داد . به عنوان مثال, برای اشاره به یک رنگ باید از color/your_id@ استفاده کرد, یا چنانچه یک String را با کلید "titlepage" در منبع XML تعریف کرده باشید, می توانید از طریق string/titlepage@ به آن دسترسی پیدا کنید .
دادن ارجاع به منابع سیستم اندروید در فایل های XML
به منظور استفاده از منبع سیستم اندروید (android system resource) , لازم است فضای نام android را در ارجاعات (references) مربوطه دخیل کنید, برای مثال : android.R.string.cancel .
Assets
Asset چیست ؟
در حالی که مسیر یا دایرکتوری res تنها دربردارنده ی مقادیر ساخت یافته ای (structured values) است که برای سیستم اندروید شناس می باشد, دایرکتوری assets را می توان جهت ذخیره سازی هر نوع داده ای بکاربرد .
می توانید با استفاده از مسیر جای گیری داده های مربوطه به فایل های ذخیره شده در این پوشه دسترسی پیدا کرد . دایرکتوری مذکور همچنین به شما اجازه می دهد در آن زیرپوشه ((subfolder ایجاد کنید .
توجه : این امکان وجود دارد که داده های فاقد ساختار (unstructured data) را نیز در پوشه ی /res/raw ذخیره و جای گذاری کرد, با این وجود به شما توصیه می شود برای این منظور دایرکتوری assets را مورد استفاده قرار دهید .
نحوه ی دسترسی به assets
می توان با استفاده از AssetsManager به داده ی نام برده دسترسی پیدا کرد . دسترسی به خود AssetsManager از طریق متد getAssets() که نمونه ای از کلاس Context است امکان پذیر می باشد.
کلاس AssetsManager به شما این امکان را می دهد که فایل دلخواه را در پوشه ی assets به عنوان inputstream و با استفاده از متد open() باز کرده و بخوانید . کد زیر با مثال این نمونه را تشریح می کند :
// get the AssetManager
AssetManager manager = getAssets();
// read the "logo.png" bitmap from the assets folder
InputStream open = null;
try {
open = manager.open("logo.png");
Bitmap bitmap = BitmapFactory.decodeStream(open);
// assign the bitmap to an ImageView in this layout
ImageView view = (ImageView) findViewById(R.id.imageView1);
view.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (open != null) {
try {
open.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
بکابردن منابع در فایل های XML و کد
افزودن تصاویر به پروژه
برای این تمرین نیز از همان پروژه ی com.vogella.android.first استفاده می کنیم .
دو فایل .png دلخواهتان را داخل پوشه ی /res/drawable-mdpi قرار دهید. اولین تصویر باید "initial.png" نام گذاری شود و دومی"assigned.png" .
نکته:
در صورت در اختیار نداشتن فایل .ping می توانید آن را تحت"Android png files" از گوگل بدست آورید .
افزودن views به پروژه
فایل layout خود را باز کرده و یک Button و ImageView جدید به آن اضافه کنید .
تخصیص تصویر به image view
فایل initial.png را به ImageView تخصیص دهید :
جایگزینی تصاویر با کلیک دکمه
در صورت کلیک دکمه ی مورد نظر, به منظور جستجو (به دنبال) Imageview از متد findViewById () استفاده کنید . حال از متد setImageResource () برای تخصیص فایل png (که در زمان اجرا/run-time توسط شئ Drawable نمایش داده می شود( به Imageview استفاده کنید .
نکته:
پارامترِ متد setImageResource ()ارجاع R به فایل شما می باشد برای مثال : R.drawable.your_png_file
بررسی
دکمه ی مورد نظر را تست کرده و بررسی کنید که با کلیک روی آن تصویر جایگزین می شود .
استفاده از scrollview
این تمرین کاربرد ScrollView جهت ایجاد کامپوننتی حاوی رابط کاربری با قابلیت scroll را شرح می دهد . پروژه ای به نام de.vogella.android.scrollview با activity ای به نام ScrollViewActivity ایجاد کنید . از activity_main.xml به عنوان فایل layout استفاده کنید .
فایل layout (بکاربرده شده در activity) را به ترتیب زیر اصلاح کنید .
کلاس ScrollViewActivityرا به کد زیر تغییر دهید .
package de.vogella.android.scrollview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class ScrollViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView view = (TextView) findViewById(R.id.TextView02);
String s="";
for (int i=0; i < 500; i++) {
s += "vogella.com ";
}
view.setText(s);
}
}
برنامه را راه اندازی کرده و با استفاده از scroll به پایین صفحه بروید تا به دکمه های submit و cancel برسید .
جای گذاری و نصب برنامه در گوشی اندروید
توصیف مختصر
در کل محدودیت های فراوانی برای جای گذاری و نصب برنامه های کاربردی اندروید در گوشی مورد نظر وجود دارد . می توان این کار را از طریق USB انجام داد یا برنامه را برای خود از طریق پست الکترونیکی ارسال کرد و یا اپلیکیشن دلخواه را از فروشگاه های مجازی اندروید روی گوشی خود نصب کرد .
جای گذاری از طریق Eclipse
ابتدا USB Debugging را با مراجعه به تنظیمات (setting) گوشی اندروید خود فعال کنید (برای این منظور طبق دستور زیر عمل کنید : Settings → Development Options, سپس گزینه ی USB-Debugging را فعال کنید) .
شاید لازم باشد اول درایور مورد نیاز گوشی اندروید خود را نصب کنید . linux و Mac OS معمولاً بدون درایور پیش نیاز کار می کنند ولی ویندوز غالباً ابتدا نصب درایور را از شما درخواست می کند .
توجه : حداقل ویرایش مورد نیاز سیستم عامل اندروید برنامه ی مربوطه باید با نسخه ی اندروید نصب شده روی گوشی شما همخوانی و سازگاری داشته باشد .
چنانچه چندین دستگاه به رایانه ی شما متصل باشند, می توانید انتخاب کنید برنامه روی کدام گوشی نصب شود . اگر تنها یک دستگاه به کامپیوتر شما متصل باشد, برنامه به صورت خودکار روی آن دستگاه نصب می شود .
عرضه (Export) برنامه ی کاربردی
برنامه های اندروید باید پیش از نصب روی دستگاه یا گوشی علامت گذاری (sign) شوند . حین برنامه نویسی Eclipse اپلیکیشن شما را خودکار ( با استفاده از کلید debug) علامت گذاری می کند .
اگر می خواهید برنامه ی کاربردی شما بدون استفاده از Eclipse نصب شود, ابتدا باید روی آن راست کلیک کرده سپس Android Tools → Export Signed Application Package را انتخاب کنید .
این ویزارد به شما اجازه می دهد با استفاده از کلید (key) موجود, یک کلید جدید ایجاد کنید .
لطفاً توجه داشته باشید که باید از همان signature key در فروشگاه مجازی گوگل پلی استفاده کنید, در غیر این صورت برنامه ی شما بروز رسانی نمی شود . در صورت از دست دادن کلید مزبور دیگر هیچ وقت قادر به آپدیت برنامه ی خود نخواهی بود . بنابراین تهیه ی فایل پشتیبانی از کلید الزامی می باشد .
نصب برنامه از طریق منابع خارجی
اندروید همچنین به شما اجازه می دهد برنامه های مورد نیاز را مستقیماً نصب کنید, کافی است روی لینکی که به فایل .apk ارجاع می دهد کلیک کنید . اندروید خود از شما می پرسد آیا مایلید برنامه را نصب کنید یا خیر .
لازم به ذکر است که برای فراهم آوردن این امکان ابتدا باید به تنظیمات گوشی مراجعه کرده, سپس به بخش امنیت ("Security ") بروید . در این بخش شما به دستگاه اجازه می دهید برنامه هایی که خارج از فروشگاه های مجازی اندروید (android market) عرضه می شوند, روی گوشی شما نصب شوند .
از طریق فروشگاه مجازیGoogle Play
برای استفاده از فروشگاه مجازی گوگل پلی باید مبلغ $ 25 بپردازید . پس از پرداخت این مبلغ, تولید کننده می تواند برنامه و آیکون های مورد نیاز را تحت
https://play.google.com/apps/publish
آپلود کند.
گوگل به صورت خودکار اپلیکیشن ها را بررسی و اسکن می کند و مادام اینکه برنامه مشکل نرم افزاری نداشته باشد, آن را منتشر می کند . برنامه ی نام برده معمولاً چند دقیقه پس از آپلود قابل دسترسی می باشد