مرجع مقالات کاربردی طراحی اپلیکیشن

شرح کامل مقالات طراحی اپلیکیشن

مرجع مقالات کاربردی طراحی اپلیکیشن

شرح کامل مقالات طراحی اپلیکیشن

شرح کامل مقالات طراحی اپلیکیشن

۱۷ مطلب در آبان ۱۴۰۱ ثبت شده است

  • ۰
  • ۰

شما می توانید پیشرفت یک اکتیویتی اندرویدی را به وسیله لود نوار جلو رفتن (progress bar) نشانه دهید. نوار جلو رفتن (progress bar) به طراحی اپلیکیشن دو شکل پدیدار می گردد Loading bar و Loading spinner.
در این نوشته‌ی‌علمی درباره‌ی spinner گفت و گو خواهیم کرد.

spinner برای نمایش پیشرفت تیم ای از اکتیویتی ها به کار گیری می گردد که کل مجال تکمیل شان  برای مخاطب ما ، نامعلوم میباشد. رایا پارس به مراد به کار گیری از spinner نیاز میباشد که آن را در XML تعریف کنید به این ترتیب :

android:id=\"@+id/progressBar1\"
style=\"?android:attr/progressBarStyleLarge\"
android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:layout_centerHorizontal=\"true\" />
بعداز تعریف آن در XML ضروریست که مرجع spinner را در فایل جاوا در نوار جلو رفتن (progress bar) بدست آورید . سینتکس آن در زیر آمده میباشد :

private ProgressBar spinner;
spinner = (ProgressBar)findViewById(R.id.progressBar1);

بعد از آن شما می‌توانید آن را نهفته فرمائید و هنگامی که که نیاز پیدا کردید بوسیله مشی setVisibility آن را بازیابی فرمائید ؛ سینتکس آن به گستردن ذیل میباشد :

spinner.setVisibility(View.GONE);
spinner.setVisibility(View.VISIBLE);
 

خلال این اسلوب ها  ، سیاق های دیگری  نیز وجود دارااست که می توانید برای به کار گیری از اسپینر به صورت موثرتر فایده ببرید :

()isIndeterminate : علامت دادن پراگرس توشه (progress bar) که در شرایط نامشخصی میباشد.
()postInvalidate : سبب ایجاد بی اعتباری (invalidate) در چرخه ی ترتیبی در چرخه  اکتیویتی ها می خواهد شد.
(setIndeterminate(boolean indeterminate : وضعیت نا معلوم پراگرس توشه (progress bar) را تغییر می دهد..
(invalidateDrawable(Drawable dr : بی اعتبار کردن Drawable منحصر
(incrementSecondaryProgressBy(int diff : افزایش دومین اکتیویتی progress bar با استعمال از یه خرده از اکتیویتی های خاص.
()getProgressDrawable : دریافت Drawable  مصرف شده به خواسته کشیدن پراگرس توشه در شرایط پروگسس
 

نمونه : 

در اینجا مثالی برای از ستفاده از نوار پردازش به خواسته کاربرد spinner نماد داده گردیده‌است.اپلیکیشن ای اصلی به شما این اذن را می دهد که با زدن یک کلیک spinner را فعال سازید.

برای آزمایش این نمونه شما می توانید آن را بر یک دستگاه حقیقی یا یک امولاتور ایفا کنید.

شما از Android studio برای ساختن نرم افزار اندرویدی ذیل پکیج  com.example.sairamkrishna.myapplication استعمال می‌کنید .
 src/MainActivity.java file  را به خواسته اضافه کردن کد های مورد نیاز تغییر و تحول دهید .
 the res/layout/activity_main را به مراد اضافه کردن ترکیباتXML  تغییر تحول دهید 
 the res/values/string.xml را تغییر تحول دهید 
نرم افزار را انجام کنید و یک دستگاه اندرویدی اجرایی را تعیین کنید آن‌گاه نرم‌افزار را در آن نصب کنید و نتیجه را پژوهش کنید.

  • شایلین عباسی
  • ۰
  • ۰

اندروید به ما این قابلیت و امکان را میدهد طراحی اپلیکیشن تا متن را به صدا یا این که به عبارتی گفتار  تبدیل کنیم . خیر فقط قابلیت و امکان تبدیل وجود داراست ، بلکه می‌توانید متن را به گویش های متعدد به گفتار صوتی تبدیل فرمائید.

اندروید کلاس  TextToSpeech را برای اجرای این غرض ارائه میدهد. رایاپارس برای به کار گیری از این کلاس ما یحتاج میباشد  application یک آبجکت از این کلاس را مثال گذاری نمایید و همینطور initListener را معین فرمائید.
سینتکس آن در ذیل ارائه شد‌ه‌است :

private EditText write;
ttobj=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
}
});
در‌این listener می بایست خصوصیت های مرتبط با آبجکت، از قبیل لهجه ، پایین و بمی صدا و غیره، را معلوم فرمائید.
گویش بوسیله ی فراخوانی روال ()setLanguage تهیه و تنظیم می‌شود، که سینتکس آن در پایین ارائه گردیده است :

ttobj.setLanguage(Locale.UK);
سیاق setLanguage یک آبجکت Locale (جای ) را تحت عنوان پارامتر می‌گیرد. لیست بعضی از این جای ها در لیست پایین آمده اند :

ایالات متحده
کانادا-فرانسه
آلمان 
ایتالیا
ژاپن
چین
 

هنگامی که گویش را تهیه و تنظیم کردیم ، قادر خواهیم بود مشی  speak از کلاس را فراخوانده و متن را به گفتار صوتی تبدیل کنیم . سینتکس آن مانند پایین است :

ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
ضمن مشی speak، سیاق های دیگری در کلاس TextToSpeech  وجود دارا‌هستند که در لیست تحت ارائه گردیده اند :

(addSpeech(String text, String filename : این سیاق یک نگاشت (mapping)  در بین یک حرفه از متن و فولدر صدا قرار تولید می نماید.

()getLanguage : این روال یک مثال  lacale  را که گویش را تعریف می نماید return می نماید.

()isSpeaking : این سیاق بررسی می نماید که آیا TextToSpeech  سرگرم است یا این که خیر.

(setPitch(float pitch : این روال  پایین و بمی صدا را برای TextToSpeech تهیه و تنظیم می نماید.

(setSpeechRate(float speechRate : این سیاق سرعت کلام را تهیه و تنظیم می نماید.

()shutdown : این روال منابع مستعمل بوسیله TextToSpeech را آزاد می نماید.

()stop : این روال speak را متوقف می نماید.

  • شایلین عباسی
  • ۰
  • ۰

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

اکشن ها و توضیحات آن به تفصیل پایین میباشد :

ACTION_DOWN : برای اولین نقطهای  رایاپارس که کاغذ را لمس می کند. این اکشن gesture را شروع می کند.
ACTION_POINTER_DOWN : هنگامی که نقاط زیادی application بر برگه وارد می خواهد شد این اکشن کاربرد دارااست.
ACTION_MOVE : این اکشن در طول لمس کاغذ و gesture آن واقعه می افتد.
ACTION_POINTER_UP : هنگامی ارسال می گردد یک مکان نما non-primary به بالا می رود .
ACTION_UP : این اکشن هنگامی ارسال میگردد که واپسین نقطه لمس نیز ، شیت را شکاف نماید .(کاملا دست از روی تاچ برداشته خواهد شد)

بنابراین به مراد گزینش هر کدام از اکشن های بالا نیاز به override  کردن مشی  onTouchEvent() دارید و event ها را می بایست به طور دستی چک کنید. سینتکس اصلی در زیر آمده میباشد :

public boolean onTouchEvent(MotionEvent ev){
final int actionPeformed = ev.getAction();

switch(actionPeformed){
case MotionEvent.ACTION_DOWN:{
break;
}

case MotionEvent.ACTION_MOVE:{
break;
}
return true;
}
}
در این مفاد قدرتمند به اعمال هر محاسباتی هستیم . برای نمونه zooming (بزرگ نمایی) و خارکردن و غیره. برای بدست آوردن خصوصیات  x و y می توانیم از سیاق های getX() و getY() استعمال کنیم که سینتکس آن به قرار زیر است :

final float x = ev.getX();
final float y = ev.getY();
خلال این سیاق ها مشی های دیگری نیز برای به کارگیری از multitouch از روش کلاس MotionEvent وجود دارا‌هستند که به گستردن پایین هستند :

()getAction : این مشی اکشن صورت گرفته را گشوده می گرداند (return می نماید) .
()getPressure : این روال فشار فعلی event را برای اولی ایندکس گشوده می گرداند.
()getRawX : این مشی بردار ایکس اساسی event را return می نماید.
()getRawY : این اسلوب بردار ایگرگ مهم را return می نماید.
()getSource : این سیاق منبع event را میگیرد.
()getXPrecision : این مشی توجه خصوصیات بردار ایکس را return می نماید.
()getYPrecision : این سیاق توجه خصوصیات بردار ایگرگ را return می نماید.

  • شایلین عباسی
  • ۰
  • ۰

یک پروژه تازه Android Studio ساخت نمایید.
الگوی «  Google Maps Activity  » را گزینش فرمایید.


   3. اسم پروژه را Wander بگذارید.

   4. دست‌کم سطح API (minimum API) را روی API 19 تهیه طراحی اپلیکیشن و تنظیم فرمائید. مطمئن گردید لهجه Kotlin میباشد.

   5. روی Finish کلیک فرمایید.

بعداز ایجاد کرد نرم افزار ، نگاهی به پروژه خویش و فایلهای مرتبط با نقشه ها که Android Studio برای شما تولید می نماید ، بیندازید:

google_maps_api.xml - شما برای نگه داشتن رایاپارس کلید API خویش از این پوشه تنظیمات به کارگیری می‌کنید. الگوی انتخابی در مرحله قبلی دو پوشه google_maps_api.xml ساخت و ساز می نماید: یکی از برای گونه های زدایی (debug) و دیگری برای تکثیر (release). فولدر کلید API برای سند گونه های زدایی در فولدر src/debug/res/values واقع شد‌ه‌است. پوشه کلید API برای سند تکثیر در فولدر src/release/res/values  جای دارد. در‌این نوشته‌علمی، شما صرفا از سند گونه های زدایی استعمال می‌کنید.

activity_maps.xml - این فولدر layout دربرگیرنده یک fragment میباشد که تک تک شیت را مالامال می نماید. کلاس SupportMapFragment یک application پایین کلاس از کلاس Fragment میباشد. SupportMapFragment بی آلایش ترین رویه برای قرار دادن نقشه در یک نرم افزار میباشد. این فرگمنت یک پوشش در نزدیکی نمای نقشه میباشد و به صورت اتوماتیک به رویدادهای چرخه معاش (life cycle) نقشه پژوهش می نماید.

شما میتوانید با استعمال از یک برچسب در هر ViewGroup ی ، با خصوصیت name ذیل ، SupportMapFragment را در یک فولدر layout قرار دهید:

android:name=\"com.google.android.gms.maps.SupportMapFragment\"
کلاس MapsActivity.kt در مشی onCreate  به فرگمنت SupportMapFragment که در layout قرار داده گردیده دسترسی پیدا می نماید و از اسلوب getMapAsync این SupportMapFragment  به کارگیری می نماید تا به طور اتومات سیستم نقشه ها و view را مقدار دهی نماید. برای این مراد اکتیویتی که مشتمل بر SupportMapFragment میباشد می بایست اینترفیس OnMapReadyCallback و اسلوب onMapReady آن را طراحی نماید. هنگام بارگذاری نقشه ، اسلوب onMapReady از اینترفیس OnMapReadyCallback فراخوانی می گردد.

 

دقت: در صورتیکه فعلا نرم‌افزار را اعمال فرمایید ، نقشه بارگیری نمیشود. در شرایطی که به log های مربوطه نگاه فرمائید ، پیامی را مشاهده می‌کنید که میگوید کلید API شما به صحت تهیه و تنظیم نشده میباشد. در مرحله آجل ، کلید API را به دست می‌آورید تا اپ نقشه را اکران دهد.

اعتنا: در صورتیکه اپلیکیشن Wander را روی مشابه ساز تست میکنید ، بایستی از یک مشابه ساز که مشتمل بر Google Play میباشد استعمال فرمائید. مشابه سازی را تعیین نمائید که Google Play را در ردیف Target در لیست دستگاه های مجازی نماد دهد:

 

مرحله دوم: بدست آوردن کلید API
ورژن debug پوشه google_maps_api.xml را گشوده نمائید.
در پوشه ، در ادامه یک کامنت با نشانی اینترنتی وقت گیر بگردید. پارامترهای این نشانی مشتمل بر داده ها خاصی درباره این اپلیکیشن شما میباشند.
نشانی را در یک مرورگر اسکن فرمائید.
برای تولید یک پروژه در ورقه « APIs & Services» ، شیوه نامه ها را دنبال نمایید. به جهت پارامترهای مو جود در نشانی ارائه گردیده ، این کاغذ می‌داند که به صورت خود کار Maps SDK را برای اندروید فعال نماید.
روی «Create an API Key» کلیک نمائید.
در ورقه سپس ، به نصیب API Keys بروید و روی کلیدی که نو تولید نموده اید کلیک نمائید.
«Restrict Key» را کلیک فرمائید و Maps SDK را برای Android تعیین فرمایید تا به کارگیری از کلید را به اپلیکیشن های اندروید محصور نمایید.
کلید API ساخت‌و‌ساز گردیده را اسکن فرمایید. این کلید با \"AIza\" آغاز میشود
در پوشه google_maps_api.xml ، کلید را در فن google_maps_key جایی که مندرج YOUR_KEY_HERE قرار دهید.
نرم افزار خویش را جاری ساختن فرمائید. شما بایستی یک نقشه درنظرگرفته شده در activity خویش با یک نشانگر تهیه و تنظیم گردیده در شهر سیدنی ، استرالیا ملاحظه کنید. (نشانگر سیدنی بخشی از الگوی پیش فرض میباشد و بعداً آن را تغییر تحول می دهید.)
اعتنا: ممکن میباشد فعال شدن کلید API تا 5 دقیقه ارتفاع بکشد. همینطور ممکن میباشد مورد نیاز باشد Android Studio را مجدد فعال‌ساز‌ی نمائید.

  • شایلین عباسی
  • ۰
  • ۰

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


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

گویش اپ نویسی اندروید

جاوا یک لهجه اپلیکیشن نویسی اندروید به حساب آورده می شود. application در واقعیت این لهجه اپ نویسی قانونی اندروید بوده و به وسیله توسعه و گسترش اندروید استودیو مدد می‌شود. یادگیری این لهجه اپلیکیشن نویسی اندروید پاره ای دشوار خیس از سایر لهجه های نرم‌افزار نویسی است. کاتلین نیز از سایر لهجه نرم‌افزار نویسی اندروید به حساب می‌آید. این گویش دو‌مین گویش نرم افزار نویسی اندروید محسوب گردیده و عمر جاوا را ندارد و یادگیری آن نیز مقداری سهل خیس میباشد.c  و c++ نیز جزو گویش هایی محسوب میگردند که اندروید از آنان حمایت می نماید. برای آن که بتوانید یک بازی برای اندروید و تلفن همراه پیاده سازی نمائید این دو لهجه بسیار مطلوب میباشند. گویش اپلیکیشن نویسی اندروید بیسیک بسیار دیرین بوده البته با این وجود همچنان جزو لهجه های اپ نویسی اندروید محسوب میشود. کورونا برای ابزار های یکسری پلتفرمی مطلوب میباشد و از مزایای استعمال از این لهجه نرم افزار نویسی اندروید به کار گیری از کتاب منزل ی محلی آن است.

جاوا

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

  • شایلین عباسی
  • ۰
  • ۰

یک نرم افزار اندرویدی می تواند بر روی دستگاه های مختلف در بخشها متفاوت عالم نصب خواهد شد ؛ به مراد جالب خیس کردن محیط اندرویدی باید طراحی اپلیکیشن نرم افزار کاربردی شما مشمول متن (text) و شماره ها (number) و فایل ها و غیره باشد و در مسیر های مطلوب بر پایه ی وضعیت محلی آیتم به کار گیری قرار گیرد.

در این نوشته ی علمی ما توضیح خواهیم بخشید  رایاپارس که چه‌طور قادر خواهیم بود نرم افزار خویش را دارنده محل و مکان کنیم یا  اصلاطحا Localize کنیم . بر پایه ی مکان های گوناگون ما ردیف های مصرف شده در نرم افزار را ، محلی می کنیم ؛ application به دنبال بخش های دیگر را نیز می توانیم لوکلایز کنیم.

Localizing Strings :
به مراد localize کردن حرفه ها (string) در نرم افزار  فایل جدیدی را باطن فولدر res  بانام values-local ساخته و در بخش لوکال که جایگزین ریجن می خواهد شد قرار می گیرد.

برای نمونه برای میهن ایتالیا  فولدر values-it در فولدر res ساخته شود.
که در زیر علامت داده گردیده:

فقط یکبار فولدر ساخته می گردد ؛ .آنگاه strings.xml را از فایل پیش فرض به فولدر تشکیل شده کپی کنید و موضوعش را تغییر دهید.
برای نمونه اینجانب value از فن  hello_world را تغییر داده ایم.

Italy, res/values-it/strings.xml:
<;?xml version=\"1.0\" encoding=\"utf-8\"?>

Ciao mondo!

French, res/values-it/strings.xml:
<;?xml version=\"1.0\" encoding=\"utf-8\"?>

Bonjour le monde !

خلال لهجه یک حوزه‌ کد مرتبط با آن نصیب  نیز در لیست زیر داده گردیده‌است :

Afrikanns

Code: af. Folder name: values-af

Arabic

Code: ar. Folder name: values-ar

Bengali

Code: bn. Folder name: values-bn

Czech

Code: cs. Folder name: values-cs

Chinese

Code: zh. Folder name: values-zh

German

Code: de. Folder name: values-de

French

Code: fr. Folder name: values-fr

Japanese

Code: ja. Folder name: values-ja

  • شایلین عباسی
  • ۰
  • ۰

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

mydatabase.execSQL(\"CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);\");
mydatabase.execSQL(\"INSERT INTO TutorialsPoint VALUES(\'admin\',\'admin\');\");
 

این سینتکس مقادیری را وارد جدول ما در مقر داده می نماید. روال دیگری که همین عمل را جاری ساختن می‌دهد ولی  دارنده پارامترهای بیشتری میباشد، در ذیل ارائه گردیده است :

(execSQL(String sql, Object[ ] bindArgs


این مشی خیر صرفا داده ها را وارد می نماید، رایاپارس بلکه با استعمال از دلیل های غیر قابل فهم، برای به روز کردن و یا این که تغییر تحول داده های جان دار در مقر داده اسنفاده می‌شود.

 

مقر داده – fetching 

ما میتوانیم با به کارگیری از یک آبجکت از کلاس Cursor، هر چیزی application را بازیابی کنیم.  ما متدی از این کلاس به اسم rawQuery را فرا خوانی میکنیم  و این سیاق گروه ای از حاصل با cursor و اشاره به جدول، ارائه میدهد.
میتوانیم cursor را فوروارد کرده و داده ها را بازیابی کنیم.

Cursor resultSet = mydatbase.rawQuery(\"Select * from TutorialsPoint\",null);
resultSet.moveToFirst();
String username = resultSet.getString(0);
String password = resultSet.getString(1);
تابع های دیگری در کلاس Cursor وجود دارا هستند که به ما اذن می‌دهند تا به صورت اثرگذار داده ها  را بازیابی کنیم. این روال ها عبارتند از :

()getColumnCount : این مشی تعداد مجموع ردیف های یک جدول را گزارش میدهد.

(getColumnIndex(String columnName : این اسلوب شماره ی index  یک ردیف را با معین کردن اسم ردیف return می نماید.

(getColumnName(int columnIndex : این روال با مشخص و معلوم کردن شماره ی index ردیف، اسم ردیف را return می نماید.

()getColumnNames  : این سیاق آرایه ای از اسم همگی ی ردیف های جدول return می نماید.

()getCount : این روال تعداد ستون ها را در cursor گزارش میدهد.

()getPosition  : این سیاق لوکیشن cursor را در جدول گزارش می‌دهد.

()isClosed : این اسلوب چنانچه cursor بسته گردیده باشد true، و در غیر این شکل false را گزارش می‌دهد.

 

مقر داده – کلاس Helper
برای سازماندهی همگی ی عملیات مرتبط با مقر داده، یک کلاس Helper به اسم SQLiteOpenHelper ارائه شد‌ه‌است. این کلاس به صورت اتومات ساخت و به روزرسانی مقر داده را سازماندهی می نماید. سینتکس آن به صورت تحت است :

public class DBHelper extends SQLiteOpenHelper {
public DBHelper(){
super(context,DATABASE_NAME,null,1);
}
public void onCreate(SQLiteDatabase db) {}
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}
}
 

نمونه

در اینجا مثالی را میبینید که استعمال از مقر داده ی SQLite را توضیح می‌دهد. این نمونه یک نرم افزار  مبنا برای تماس ساخت می نماید که قابلیت افزودن آیتم ، حذف آیتم و یا این که تغییر و تحول صورت تماس ها را مهیا می نماید.

برای تست این نمونه بایستی آن را روی دستگاهی انجام نمایید که در آن دوربین مدد می‌شود.

  • شایلین عباسی
  • ۰
  • ۰

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

اندروید کلاس  TextToSpeech را برای اجرای این غرض ارائه میدهد. برای استعمال از این کلاس ما یحتاج میباشد رایاپارس یک آبجکت از این کلاس را مثال گذاری نمایید و همینطور initListener را مشخص و معلوم نمائید.
سینتکس آن در ذیل ارائه گردیده‌است :

private EditText write;
ttobj=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
}
});
درین listener بایستی خصوصیت های مرتبط با آبجکت، application از قبیل گویش ، پایین و بمی صدا و غیره، را معین نمایید.
گویش بوسیله ی فراخوانی اسلوب ()setLanguage تهیه می‌گردد، که سینتکس آن در تحت ارائه شد‌ه‌است :

ttobj.setLanguage(Locale.UK);
اسلوب setLanguage یک آبجکت Locale (جای ) را تحت عنوان پارامتر می‌گیرد. لیست برخی از این جای ها در لیست ذیل آمده اند :

ایالات متحده
کانادا-فرانسه
آلمان 
ایتالیا
ژاپن
چین
 

وقتی که گویش را تهیه و تنظیم کردیم ، خواهیم توانست اسلوب  speak از کلاس را فراخوانده و متن را به گفتار صوتی تبدیل کنیم . سینتکس آن مانند پایین است :

ttobj.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
ضمن اسلوب speak، سیاق های دیگری در کلاس TextToSpeech  وجود دارا هستند که در لیست ذیل ارائه گردیده اند :

(addSpeech(String text, String filename : این مشی یک نگاشت (mapping)  در بین یک فن از متن و فولدر صدا قرار ساخت و ساز می نماید.

()getLanguage : این سیاق یک مثال  lacale  را که گویش را تعریف می نماید return می نماید.

()isSpeaking : این مشی تحلیل می نماید که آیا TextToSpeech  درگیر میباشد یا این که خیر.

(setPitch(float pitch : این سیاق  تحت و بمی صدا را برای TextToSpeech تهیه و تنظیم می نماید.

(setSpeechRate(float speechRate : این مشی سرعت سخن را تهیه می نماید.

()shutdown : این اسلوب منابع مصرف شده بوسیله TextToSpeech را آزاد می نماید.

()stop : این اسلوب speak را متوقف می نماید.

 

نمونه
نمونه پایین به کارگیری از کلاس TextToSpeech را توضیح میدهد.
این نمونه یک نرم افزار  محور تولید می نماید که به شما اذن می‌دهد تا متن نوشتاری را تهیه کرده و آن را تبدیل به کلام فرمائید.

برای جاری ساختن این نمونه موردنیاز میباشد آن را روی یک دستگاه حقیقی وواقعی انجام نمائید :

برای ساخت یک نرم افزار اندروید از اندروید استودیو ذیل پکیج com.example.sairamkrishna.myapplication به کار گیری می‌کنیم .
پوشه src/MainActivity.java را برای اضافه کردن کد TextToSpeech تغییر و تحول دهید.
لی اوت پوشه XML مرتبط با res/layout/activity_main.xml را تغییر‌و تحول داده و در صورتی‌که ما یحتاج میباشد کامپوننت GUI به آن اضافه نمایید.
نرم افزار را جاری ساختن کرده و یک دستگاه اجرایی اندروید گزینش نمائید، اپلیکیشن را روی آن نصب کرده و نتیجه ها را پژوهش فرمائید.
 

محتوای src/MainActivity.java :

package com.example.sairamkrishna.myapplication;

import android.app.Activity;
import android.سیستم عامل.Bundle;
import android.speech.tts.TextToSpeech;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.util.Locale;
import android.widget.Toast;

public class MainActivity extends Activity {
TextToSpeech t1;
EditText ed1;
Button b1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ed1=(EditText)findViewById(R.id.editText);
b1=(Button)findViewById(R.id.button);

t1=new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
if(status != TextToSpeech.ERROR) {
t1.setLanguage(Locale.UK);
}
}
});

b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String toSpeak = ed1.getText().toString();
Toast.makeText(getApplicationContext(), toSpeak,Toast.LENGTH_SHORT).show();
t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
}
});
}

public void onPause(){
if(t1 !=null){
t1.stop();
t1.shutdown();
}
super.onPause();
}
}
محتوای activity_main.xml :


xmlns:tools=\"http://schemas.android.com/tools\" android:layout_width=\"match_parent\"
android:layout_height=\"match_parent\" android:paddingLeft=\"@dimen/activity_horizontal_margin\"
android:paddingRight=\"@dimen/activity_horizontal_margin\"
android:paddingTop=\"@dimen/activity_vertical_margin\"
android:paddingBottom=\"@dimen/activity_vertical_margin\"
tools:context=\".MainActivity\"
android:transitionGroup=\"true\">

android:layout_height=\"wrap_content\"
android:id=\"@+id/textview\"
android:textSize=\"35dp\"
android:layout_alignParentTop=\"true\"
android:layout_centerHorizontal=\"true\" />

android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"Tutorials point\"
android:id=\"@+id/textView\"
android:layout_below=\"@+id/textview\"
android:layout_centerHorizontal=\"true\"
android:textColor=\"#ff7aff24\"
android:textSize=\"35dp\" />

android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:id=\"@+id/imageView\"
android:src=\"@drawable/abc\"
android:layout_below=\"@+id/textView\"
android:layout_centerHorizontal=\"true\"
android:theme=\"@style/Base.TextAppearance.AppCompat\" />

android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:id=\"@+id/editText\"
android:layout_below=\"@+id/imageView\"
android:layout_marginTop=\"46dp\"
android:hint=\"Enter Text\"
android:layout_alignParentRight=\"true\"
android:layout_alignParentEnd=\"true\"
android:layout_alignParentLeft=\"true\"
android:layout_alignParentStart=\"true\"
android:textColor=\"#ff7aff10\"
android:textColorHint=\"#ffff23d1\" />

android:layout_width=\"wrap_content\"
android:layout_height=\"wrap_content\"
android:text=\"Text to Speech\"
android:id=\"@+id/button\"
android:layout_below=\"@+id/editText\"
android:layout_centerHorizontal=\"true\"
android:layout_marginTop=\"46dp\" />


محتوای Strings.xml:


My Application

محتوای پوشه AndroidManifest.xml:


package=\"com.example.sairamkrishna.myapplication\" >
android:allowBackup=\"true\"
android:icon=\"@mipmap/ic_launcher\"
android:label=\"@string/app_name\"
android:theme=\"@style/AppTheme\" >

android:name=\".MainActivity\"
android:label=\"@string/app_name\" >


 

میخواهیم نرم افزار ی متبوع را انجام کنیم ؛ 
فرض می‌کنیم که دستگاه تلفن همراه اندروید خویش را به کامپیوتر متصل نموده اید. برای اجرای نرم افزار از اندروید استودیو ، یک کدام از فولدر های اکتیویتی پروژه را گشوده کرده و روی آیکون Run  از نوار ابزار کلیک نمایید. پیش از آغاز نرم افزار ، اندروید استودیو پنجره ای را برای گزینش مورد ی محل اجرای نرم افزار اندرویدتان، اکران خواهد بخشید که می بایست گوشی خویش را تحت عنوان یک آیتم گزینش کرده و آنگاه آن را ارزیابی فرمائید که کاغذ ی نرم افزار را اکران خواهد بخشید.

  • شایلین عباسی
  • ۰
  • ۰

اندروید برای اتصال به مقر داده MYSQL از روش برگه PHP ، طراحی اپلیکیشن میتواند از دو شیوه متفاوت به کارگیری نماید. اولین طریق GET اسم دارااست. برای اتصال با به کار گیری از طریق GET از کلاس HttpGet و HttpClient استعمال خوا‌هیم کرد. رایاپارس طرز ایفا آن در ذیل نقل شده میباشد:

URL url = new URL(link);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(link));
 

بعد از آن ، می بایست روال execute از کلاس HttpClient را فراخوانی کرده application و سود آن را در یک شی HttpResponse اخذ نمایید. آنگاه جهت کسب اطلاعات ، بایستی از stream به کار گیری نمائید.

HttpResponse response = client.execute(request);
BufferedReader in = new BufferedReader
(new InputStreamReader(response.getEntity().getContent()));
 

اتصال با نحوه POST

در شیوه POST ، از کلاس URLEncoder و URLConnection به کار گیری می‌کنیم. کلاس URLEncoder داده ها متغیرهای عبوری را کد می نماید. طریق اعمال آن در ذیل بیان شده میباشد:

URL url = new URL(link);
String data = URLEncoder.encode(\"username\", \"UTF-8\")
+ \"=\" + URLEncoder.encode(username, \"UTF-8\");
data += \"&\" + URLEncoder.encode(\"password\", \"UTF-8\")
+ \"=\" + URLEncoder.encode(password, \"UTF-8\");
URLConnection conn = url.openConnection();
 

واپسین کاری که می بایست ایفا دهید تایپ کردن این اطلاعات در اتصال میباشد. بعد از تایپ کردن ، برای اخذ داده های جواب می بایست از stream به کار گیری نمائید.

OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write( data );
BufferedReader reader = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
 

طراحی اپ مثال
 

نمونه تحت مثالی بدون نقص از اتصال نرم افزار اندرویدی شما با مقر داده MYSQL از روش برگه PHP میباشد. این نرم‌افزار ، یک نرم افزار ابتدایی میباشد که به شما قابلیت میدهد با به کارگیری از طریق GET و POST وارد سیستم گردید.  

 

کد PHP و MYSQL
 

در‌این نمونه یک مقر داده با اسم temp در 000webhost.com ساخته شده است. در آن مقر داده ، جدولی با اسم table1 ساخته شده است. این جدول دارنده سه فیلد (Username, Password, Role) میباشد. این جدول تنها یک رکورد داراست که (\"admin\",\"admin\",\"administrator\") میباشد

  • شایلین عباسی
  • ۰
  • ۰

لهجه اپلیکیشن نویسی Rust از یک نوع داده به اسم tuple تامین می نماید که نوعی متغیر ترکیبی به حساب می آید که دارنده نوع مشابهی در گویش نرم افزار نویسی جاوا وجود ندارد. قطعه کد تحت مثال ای از به کارگیری از tuple در اپ نویسی به گویش Rust را به شما اکران میدهد:

fn main() {
let myTuple = (\"Sum\", 10, 5);
let (x, y) = myTuple ;
println!(\"The {} is: {}\", x, y + z);
}
در‌این قطعه کد شما می‌توانید ببینید که متغیر myTuple با به کارگیری از پرانتزهایی که مشتمل بر سه مقدار می باشند تعریف و تمجید گردیده‌است که‌این سه مقدار دربرگیرنده یک فن و دوتا درست میباشند. این دقیقا نشانه دهنده نوع داده tuple میباشد.

همان گونه که در خط آتی این قطعه کد میتوانید ملاحظه کنید که در نرم افزار نویسی به لهجه Rust این قابلیت برای شما وجود دارااست که مقادیر باطن tuple را به متغیرهای اسکالر تجزیه فرمایید که برای این فعالیت می اقتدار از واژه کلیدی let بهره برد که مقادیر باطن tuple شمارا به سه متغیر X، y و z تخصیص میدهد.

خلال این شما می‌توانید در اپلیکیشن نویسی به گویش Rust به اعضای tuple خویش از روش ایندکس آنان دسترسی داشته باشید. برای مثال tup.0 اولی مقدار مو جود در tuple که یک حرفه میباشد را برای شما برمی گرداند.

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

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

pub trait Summary {
fn summarize(&amp;amp;self) -> String;
}
pub struct NewsArticle {
pub headline: String,
pub location: String,
pub author: String,
pub content: String,
}

impl Summary for NewsArticle {
fn summarize(&amp;amp;self) -> String {
format!(\"{}, by {} ({})\", self.headline, self.author, self.location)
}
}

pub struct Tweet {
pub username: String,
pub content: String,
pub reply: bool,
pub retweet: bool,
}

impl Summary for Tweet {
fn summarize(&amp;amp;self) -> String {
format!(\"{}: {}\", self.username, self.content)
}
}

fn main() {
let tweet = Tweet {
username: String::from(\"dog_post\"),
content: String::from(\"A Shih Tzu is smaller than a Lurcher\",
),
reply: false,
retweet: false,
};

println!(\"1 new tweet: {}\", tweet.summarize());
}
در این مکان واژه و کلمه کلیدی trait برای تمجید یک خصوصیت Summary به کار گیری می‌گردد که برای هریک از گونه های داده به طور مستقل طراحی میگردد که متغیرهای مرتبط با آنان مشتمل بر NewsArticle و Tweet می باشند که با به کار گیری از واژه کلیدی impl طراحی گردیده اند. همان گونه که مشاهده می‌کنید این شیوه همانندی متعددی به اینترفیس ها در گویش نرم افزار نویسی جاوا داراست به جز این گزینه که در گویش جاوا یک اینترفیس به مکان تمجید تکه ای متدها تمام سطح کلاس را تعریف و تمجید می نماید.

  • شایلین عباسی