سه شنبه ۱۱ اردیبهشت ۰۳

آرشیو آبان ماه 1401

مرجع رسمي مقاله هاي طراحي اپليكيشن اندرويد در مشهد

اشتراک گذاری Intent :

۲۰ بازديد
اشتراک گذاری Intent برای اشتراک گذاری طراحی اپلیکیشن در مشهد داده میان نرم افزار ها استعمال می گردد.
درین استراتژی ، ما به قضیه SDK نمی پردازیم بلکه به اپلیکیشن ی رخ بوک اذن میدهیم تا به آن بازرسی نماید. به آسانی نرم افزار ی چهره بوک را فرا خوانده و داده را وارد میکنیم تا به اشتراک بگذارد.  رایا پارس از این نحوه می اقتدار چیزی روی صورت بوک به اشتراک گذاشت.
اندروید کتابخانه ی Intent ارائه میدهد تا اطلاعات در بین اکتیویتی ها و نرم افزار ها به اشتراک گذارده شوند. برای استعمال از آن تحت عنوان share intent بایستی نوع share intent را برای ACTION_SEND مشخص و معلوم کنیم.
سینتکس آن در تحت ارائه گردیده‌است :
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
شغل دیگری که مورد نیاز میباشد اجرا دهید ، تعریف‌و‌تمجید نوع داده برای جابجایی است که می‌توانید بعداز آن داده را منتقل فرمایید.
سینتکس آن مانند ذیل میباشد.
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Hello, from tutorialspoint");
startActivity(Intent.createChooser(shareIntent, "Share your thoughts"));
خلال این روال ها، سیاق های دیگری برای تحقیق به intent وجود دارا‌هستند که در پایین ارائه گردیده اند:
(addCategory(String category : این مشی یک مولفه ی نو به intent اضافه می نماید.
(createChooser(Intent target, CharSequence title : تابعی بی آلایش برای ساخت‌و‌ساز ACTION_CHOOSER Intent
()getAction : این اسلوب اکشن کلی که می بایست صورت پذیرد، مانند ACTION_VIEW را بازیابی می نماید.
()getCategories : این سیاق تیم ی همگی ی کامپوننت های intent.nt و event های مقیاس گذاری اخیر را گشوده می گرداند (return می نماید) .
(putExtra(String name, int value : این اسلوب extended data را به intent اضافه می نماید.
toString() این مشی حرفه ای (string ) مشتمل بر یک تعریف بدیهی و خوانا از این آبجکت را گشوده می گرداند (return می نماید) .
نمونه :
در اینجا مثالی را می‌بینید که به کار گیری از IntentShare را برای اشتراک گذاری داده ها روی صورت بوک توضیح میدهد.
این نمونه یک نرم افزار محور (basic application) ساخت و ساز می نماید که به شما اذن ی به اشتراک گذاری متن روی چهره بوک را می‌دهد.
برای تست با این نمونه می‌توانید آن را روی یک دستگاه حقیقی یا این که یک امولاتور ایفا فرمایید.
برای ساخت و ساز یک اپلیکیشن ی اندروید از Android studio ذیل پکیج com.example. intentShare به کار گیری می‌کنید .
پوشه src/MainActivity.java را برای اضافه کردن کد موردنیاز تغییر‌و تحول دهید.
res/layout/activity_main را برای اضافه کردن کامپونن های XML تغییر‌و تحول هید.
اپ را انجام کرده و یک دستگاه اجرایی اندروید تعیین فرمائید و نرم‌افزار را روی آن نصب فرمائید، بعد از آن حاصل را تحقیق فرمائید.

آموزش ایجاد صفحه لاگین در اندروید

۱۹ بازديد
یک نرم افزار Login برای صدق بخشیدن به داده ها شما برای ورود طراحی اپلیکیشن در مشهد به برخی از نرم افزار های خاص میباشد.کلیه ی ما شیت Login را در هنگام ورود به فیس بوک و تویتر و غیره دیده ایم .
این نوشته‌ی علمی در زمینه ی چگونگی ایجاد کرد یک ورقه Login و مدیریت امنیت نرم افزار ، زمانی که دیگران برای ورود به محیط فردی شما همت می کنند ، توضیح می دهد.
آغاز شما باید دو TextView را برای اسم کاربری و سر ورود برای کاربر تعریف کنید. رایاپارس سر ورود TextView باید inputType ( گزینش نوع ورودی) داشته باشد تا تحت عنوان راز ورود مصرف شود. توضیحات مورد نیاز در زیر آمده میباشد :
android:id = "@+id/editText2"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:inputType = "textPassword" />
android:id = "@+id/editText1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
/>
دکمه ای یار و همدم با یک متن برای login شدن ، تعریف کنید و آن را در نصیب خصوصیت onClick قرار دهید. آن گاه function یا این که تابع آن را در خصوصیت onClick در فایل جاوا تعریف کنید :
android:id = "@+id/button1"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:onClick = "login"
android:text = "@string/Login"
/>
در فایل جاوا ، در اسلوب onClick ، متن اسم کاربری و سر ورود در حالا استعمال را ، با اسلوب ()getText و ()toString بگیرید و آن را به تابع ()equals بفرستید .
EditText username = (EditText)findViewById(R.id.editText1);
EditText password = (EditText)findViewById(R.id.editText2);
public void login(View view){
if(username.getText().toString().equals("admin") && password.getText().toString().equals("admin")){
//correcct password
}else{
//wrong password
}
آخرین کاری که باید اجرا دهید این میباشد که مکانیزم امنیتی تشکیل دهید که از هدف های ناخواسته و غیر قابل پیش گویی اجتناب خواهد شد.
برای این خواسته فرصت آن را کاهش دهید و هنگامی که مجال به 0 رسید کلید login غیر فعال می گردد.
int counter = 3;
counter--;
if(counter==0){
//disble the button, close the application e.t.c
}
نمونه :
در اینجا یک نمونه برای کاغذ Login وجود داراست که نرم افزار پایه را می سازد که فقط یک توشه زمان ورود به آن وجود دارااست.
برای آزمایش کردن این نمونه شما می توانید آن را بر روی دستگاه واقعی و یا یک امولاتور اعمال کنید.
از Android studio برای اجرای نرم افزار ذیل پکیج com.example.sairamkrishna.myapplication استعمال نمائید .
src/MainActivity.java file به خواسته اضافه کردن کد های موردنیاز تغییر تحول دهید .
the res/layout/activity_main به مراد اضافه کردن مولفه های XML تغییر تحول دهید.
نرم افزار را اعمال کنید و یک دستگاه اندروید اجرایی را گزینش کنید بعد نرم‌افزار را در آن نصب کنید و نتیجه را پژوهش کنید.

تغییر ظاهر نشانگرها

۱۹ بازديد
با تغییر‌و تحول ظواهر نشانگرهای نقشه ، میتوانید نقشه خویش را حتی بیشتر فردی نمایید. طراحی اپلیکیشن در مشهد در‌این مرحله ، ظواهر نشانگرهای قرمز رنگ پیش فرض را دیدنی خیس میکنیم.
در اسلوب onMapLongClick ، رایاپارس کد پایین را به تولید کننده MarkerOptions اضافه نمایید تا از نشانگر پیش فرض استعمال نماید ، البته رنگ آن را به آبی‌رنگ تغییر‌و تحول دهید.
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
اکنون کد onMapLongClickListener به طور پایین میشود:
map.setOnMapLongClickListener { latLng ->
// A snippet is additional text that's displayed after the title.
val snippet = String.format(
Locale.getDefault(),
"Lat: %1$.5f, Long: %2$.5f",
latLng.latitude,
latLng.longitude
)
map.addMarker(
MarkerOptions()
.position(latLng)
.title(getString(R.string.dropped_pin))
.snippet(snippet)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE))
)
}
2. نرم افزار را جاری ساختن نمایید. نشانگرهایی که پس از کلیک وقتگیر آرم داده می گردند ، در حال حاضر آبی‌رنگ می‌باشند. اعتنا داشته باشید که نشانگرهای POI هنوز قرمز‌رنگ می‌باشند چون شما استایلی به روال onPoiClick اضافه نکرده اید.
اضافه کردن لایه پوششی روی نقشه
یکی رویه های فردی سازی نقشه Google ، رسم روی آن میباشد. این طرز در شرایطی که اثرگذار میباشد که بخواهید نوع خاصی از جای ، مانند مکانهای دارای اسم و رسم ماهیگیری را پررنگ فرمائید.
صورت ها: میتوانید خط شکسته ، چندین ضلعی و دایره به نقشه اضافه فرمائید.
اشیای GroundOverlay: پوشش زمینی (Ground Overlay) تصویری میباشد که روی نقشه اثبات می‌گردد. برخلاف نشانگرها که معطوف به شیت می باشند ، پوشش های زمینی بیشتر معطوف به سطح زمین می‌باشند. چرخش ، کج کردن یا این که بزرگ نمایی نقشه ، جهت این عکس را نیز تغییر تحول میدهد. زمانی میخواهید یک تصویر واحد را در یک بخش از نقشه اثبات نمایید ، پوشش های زمینی موثر میباشند.
روند اضافه کردن پوشش زمینی
در‌این عمل ، شما یک پوشش زمینی به صورت آیکون اندروید به جای منزل خویش اضافه می‌کنید.
این تصویر اندروید را دانلود نمائید و آن را در فولدر res/drawable ذخیره فرمایید. (مطمئن گردید که اسم فولدر android.png باشد.)
2. در onMapReady ، بعداز امر انتقال برای جابجایی دوربین به حالت منزل خویش ، یک شی GroundOverlayOptions ساخت و ساز نمائید.
3. شی را در متغیری به اسم androidOverlay قرار دهید.
val androidOverlay = GroundOverlayOptions()
4. از روال BitmapDescriptorFactory.fromResource برای تولید یک شی BitmapDescriptor از منبع تصویر بارگیری گردیده به کار گیری نمائید.
5. شی BitmapDescriptor نتیجه ها را به اسلوب image از شی GroundOverlayOptions ارسال فرمائید:
val androidOverlay = GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromResource(R.drawable.android))
6. یک متغیر از نوع float به اسم overlaySize ساخت‌و‌ساز فرمائید که اندازه پهنا (با واحد متر) از پوشش متبوع را مشخص و معلوم نماید. برای این نمونه ، پهنا 100f به خیر و خوبی عمل می نماید. سخن f در انتهای 100f برای انتخاب نوع متغیر که از نوع float (اعشاری) میباشد میباشد و نشانه واحد وجود ندارد، واحد در اینجا متر فرض می‌گردد.
با فراخوانی مشی position با آرگمان های homeLatLng و overlaySize خواص حالت را برای شی GroundOverlayOptions تهیه نمایید.
val overlaySize = 100f
val androidOverlay = GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromResource(R.drawable.android))
.position(homeLatLng, overlaySize)
7. سیاق addGroundOverlay از شی GoogleMap را فراخوانی نمائید و آرگمان GroundOverlayOptions را به آن ارسال نمائید.
map.addGroundOverlay(androidOverlay)
8. اپ را ایفا فرمائید.
9. مقدار zoomLevel را به 18f تغییر و تحول دهید تا تصویر آیکون اندروید را تحت عنوان یک پوشش ملاحظه کنید.
10. نقشه را بچرخانید و خرد و تعالی فرمائید و تغییر تحول تصویر به طور هماهنگ با نقشه را ملاحظه کنید.

چرخه حیات (Lifecycle)

۲۱ بازديد
رئیس چرخه حیات یکی‌از بزگترین معضل های ایجاد کرد طراحی اپلیکیشن در مشهد یک نرم افزار اندرویدی میباشد. در‌حالتی که از فرگمنت ها به کارگیری فرمایید چرخه حیات حتی قادر است بغرنج خیس خواهد شد ، چرا که چرخه حیات آن‌ها در ورژن های متعدد اندروید متعدد میباشد ( اما این اختلال الان به وسیله کتابخانه AppCompat حل شد‌ه‌است).  رایاپارس بریم ببنیم که کامپوننت چرخه حیات به چه شکل به ما یاری میکند تا از حایل این بحران عبور کنیم.
Lyfecycle، کلاس ها و اینترفیس هایی را اماده نموده است که اذن تشکیل داد کامپوننت های با خبر از چرخه حیات (lifecycle-aware) را می دهند که به طور خود کار اخلاق خودشان را با چرخه حیات فعلی یک اکتیویتی یا این که فرگمنت سازگار میکنند. این قابلیت و امکان اذن می‌دهد که چرخه حیات برای سایر ابجکت ها قابل مشاهده باشد.
این کامپوننت برای افزودن چرخه های حیات غیر باخبر(lifecycle-awareness) به کار گیری می‌شود. این گزینه برای اشخاصی که کتابخانه میسازند موثر خواهد بود به دلیل آن که می توانند منابع را باتوجه به چرخه حیات ازاد نمایند.
بریم ببینیم به چه شکل کامپوننت Lyfecycle به ما امداد میکند. اینجا یک نمونه از اینکه به چه شکل یک کد کانال بنویسیم آورده شده میباشد:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Network call
api.get().onResponse { data ->
textView.text = data
}
}
نکته: کد بالا به لهجه کاتلین میباشد، که الان تحت عنوان گویش قانونی ایجاد کرد نرم افزار های اندروید استعمال میگردد.
این نمونه یک کد معمولی کانال میباشد که یک درخواست GET به اینترنت ارسال میکند و جواب ان را در یک TextView تهیه میکند.
بی آلایش به حیث می‌رسد، البته اینطور وجود ندارد، چون زمانی که شما دستگاه اندرویدی خویش را بچرخانید یااینکه از نرم افزار بیرون گردید، درخواستی که به اینترنت نبی بودید همچنان در بک گراند در حالا اجراست و هنگامی که جواب خویش را اخذ میکند اپلیکیشن کرش میکند زیرا دیگرTextViewوجود ندارد چون اکتویتی از دربین رفته میباشد.
بسط دهندگان اندروید از این نقص‌ آگاه میباشند. برای حل این اختلال، نیاز داریم هنگامی که اکتیویتی از فی مابین میرود درخواست را کنسل کنیم مانند کد تحت:
override fun onCreate(savedInstanceState: Bundle?) {
///....
// Network call
request = api.get()
request.onResponse { data ->
textView.text = data
request = null
}
}
override fun onDestroy() {
if (request != null) request.cancel()
}
هرچند، با ارتقاء عدم وضوح نرم افزار، رئیس این مساله به یک معضل تبدیل می‌شود و به راحتی ممکن میباشد جاهایی را فراموش کنیم.
کامپوننت Lyfecycle برای حل اینگونه مشکلاتی پیاده سازی شد‌ه‌است که با ساخت‌و‌ساز کامپوننت های باخبر از چرخه حیات (lifecycle-aware) ( که از موقعیت اکتیویتی مطلع می باشند) نقص‌ را حل میکنند.
بیاید این توشه با استعمال از کتابخانه Lifecyle نگاهی به به عبارتی تکه کد کنیم:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Network call
api.get().onResponse(getLifecycle()) { data ->
textView.text = data
}
}

معرفی حافظه داخلی یا Internal در اندروید

۲۷ بازديد
اندروید یاد های متفاوتی برای ذخیره سازی داده های مرتبط با نرم افزار ها ارائه میدهد.
این خاطر ها عبارتند از:
preference های به اشتراک گذارده گردیده
یاد ی داخلی (internal)
یاد ی فرنگی (external storage)
یاد ی QLite
ذخیره سازی از روش اتصال به کانال.
درین نوشته‌ی‌علمی قرار میباشد طراحی اپلیکیشن در مشهد یاد ی داخلی (internal) را گزینه نظارت در اختیار بگذاریم.
یاد ی داخلی (internal) محل ذخیره سازی داده های فردی بر روی خاطر ی دستگاه است.
این داده ها به صورت پیش فرض فردی بوده و صرفا از روش نرم افزار های شما قابل دسترسی میباشند و وقتی تمیز میشوند که مخاطب دستگاه ، نرم افزار را منزه کرد‌ه باشد.
Writing file (تصویب اطلاعات بر یاد) :
برای به کار گیری از خاطر ی داخلی (internal) و تصویب کردن (write) بعضی اطلاعات در پوشه ، رایاپارس اسلوب ()openFileOutput را با اسم پوشه و مدل (mode) متبوع فرا بخوانید. mode آن می‌تواند فردی یا این که عمومی باشد.
سینتکس آن در پایین ارائه گردیده است :
FileOutputStream fOut = openFileOutput("file name here",MODE_WORLD_READABLE);
اسلوب ()openFileOutput مثال ای از FileOutputStream را بر می گرداند (return می نماید) . براین اساس شما آن را در آبجکت FileInputStream اخذ می‌کنید. بعد از آن می‌توانیم مشی تایپ کردن (write method) را برای تایپ کردن داده روی فولدر، فرا بخوانیم.
سینتکس آن را میتوانید ملاحظه کنید :
String str = "data";
fOut.write(str.getBytes());
fOut.close();

لیست حسگرهای پشتیبانی شده :

۲۱ بازديد
شما می‌توانید لیستی از حسگر هایی داشته باشد طراحی اپلیکیشن در مشهد که با فراخوانی مشی getSensorList ، به وسیله دستگاه دفاع میشوند .
لیست حسگرها دربرگیرنده اطلاعاتی از قبیل اسم و شماره ی نسخه و غیره میباشد . سینتکس آن در تحت ارائه گردیده است :
sMgr = (SensorManager)this.getSystemService(SENSOR_SERVICE);
List list = sMgr.getSensorList(Sensor.TYPE_ALL);
for(Sensor sensor: list){
}
خلال این مشی ها، روال های دیگری بوسیله کلاس SensorManager، برای سازماندهی رایاپارس فریمورک حسگر ها ارائه گردیده است. این مشی ها در جدول پایین ارائه گردیده‌است :
(getDefaultSensor(int type : این اسلوب یک حسگر پیش فرض را برای یک نوع ارائه گردیده ، می‌گیرد.
(getOrientation(float[ ] R, float[ ] values : این اسلوب توضیحی از ویدیو اساسی حاضر روی ویدیو بورد گزارش میدهد، ولی اسکن از داده ی آن ارائه نمیشود.
(getInclination(float[ ] I :
این اسلوب زاویه ی شیب کشش زمین را با مقیاس رادیان نسبت به شیب ماتریس احتساب می نماید.
(registerListener(SensorListener listener, int sensors, int rate :
این اسلوب یک مستمع برای حسگر به ثبت می رساند.
(unregisterListener(SensorEventListener listener, Sensor sensor :
این اسلوب یک مستمع برای حسگر هایی که تصویب آن ها لغو گردیده ، به ثبت می رساند .
(getOrientation(float[ ] R, float[ ] values :
این سیاق جهت دستگاه را بر پایه ی چرخش ماتریس به حساب آوردن می نماید.
(getAltitude(float p0, float p :
این روال طول را در فشار اتمسفر و فشار در سطح دریا را به متر اکانت می نماید.
نمونه :
در اینجا مثالی را میبینید که استعمال از کلاس SensorManager را توضیح میدهد. این نمونه یک نرم افزار مبنا ساخت می نماید که به ما اذن می‌دهد تا لیست حسگر ها را روی دستگاه خویش مشاهده کنیم.
برای تست این نمونه میتوانید آن را روی یک دستگاه حقیقی و واقعی یا این که یک امولاتور اعمال فرمایید.
برای ساخت‌و‌ساز یک نرم‌افزار ی اندروید از اندروید استودیو زیر بسته ی com.example.sairamkrishna.myapplication می‌کنیم .
src/MainActivity.java را برای اضافه کردن کد موردنیاز تغییر‌و تحول می‌دهیم
res/layout/activity_main را برای اضافه کردن کامپونن های XML مربوطه تغییر تحول می‌دهیم .
نرم افزار را انجام کرده و یک دستگاه اجرایی اندروید تعیین نمایید، نرم افزار را روی آن نصب کرده و حاصل را رسیدگی نمائید.
محتوای تغییر‌و تحول یافته ی MainActivity.java :
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.سخت افزار.SensorManager;
import android.Operating System.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import java.util.List;
import android.سخت افزار.Sensor;
import android.سخت افزار.SensorManager;
public class MainActivity extends Activity {
TextView tv1=null;
private SensorManager mSensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1 = (TextView) findViewById(R.id.textView2);
tv1.setVisibility(View.GONE);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
List mList= mSensorManager.getSensorList(Sensor.TYPE_ALL);
for (int i = 1; i < mList.size(); i++) {
tv1.setVisibility(View.VISIBLE);
tv1.append("n" + mList.get(i).getName() + "n" + mList.get(i).getVendor() + "n" + mList.get(i).getVersion());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}

آشنایی با انواع پشتیبانی کتابخانه ها در اندروید

۲۶ بازديد
هنگامی شما اپلیکیشنی را روی واپسین نسخه اندروید، به عنوان مثال اندروید 4.0، گسترش می دهید و میخواهید آن را روی دستگاه هایی که دارنده نسخه های دیرین خیس اندروید می‌باشند، به عنوان مثال اندروید 3.2، طراحی اپلیکیشن در مشهد اعمال نمایید می بایست سازگاری پذیری معکوس (backward compatibility) را به کد اپلیکیشن اضافه فرمایید تا این فعالیت قابلیت و امکان پذیر خواهد شد.
برای پشتیبانی سازگاری پذیری معکوس (backward compatibility) ، اندروید پکیج Android Support Library را به شما ارائه می‌دهد. این پکیج تیم ای از کد کتابخانه هایی میباشد رایاپارس که نسخه های سازگاری پذیری معکوس را در فریمورک API های اندروید و همینطور خصوصیت هایی که تنها از روش API های کتابخانه در دسترس می‌باشند، ارائه می‌دهد.
هر Support Library یک سازگاری پذیر معکوس برای یک سطح خاص از Android API است.
خصوصیت های Support Library
پکیج Support Library در اندروید دارنده کتابخانه های متعددی است که می‌توانند وارد نرم افزار شما شوند. هر مورد از این کتابخانه ها گروه بندی خاصی از نسخه های پلتفرم اندروید و دسته ی خصوصیت های خاصی را دفاع می نمایند.
برای اینکه از این کتابخانه ها به کار گیری ی اثرگذار تری داشته باشید، دقت به اینکه کدام سطح API آیتم مقصود شماست خیلی اصلی میباشد ، چرا‌که هر کتابخانه ، سطوح متعدد API را نگهبانی می نماید.
در تحت توضیح مختصری از android support libraries و سطح API که مدد می نمایند را خواهید خواند :
v4 Support Library : این کتابخانه برای اندروید نسخه 1.6 (سطح API 4) و فراتر پیاده سازی گردیده است.
v7 Support Library : کتابخانه های متعددی وجود دارا‌هستند که برای به کار گیری اندروید نسخه 2.1 ( و سطح API 7) و فراتر پیاده سازی گردیده اند.
v8 Support Library : این کتابخانه برای اندروید ( و سطح API 8) پیاده سازی گردیده است.
v13 Support Library : این کتابخانه برای اندروید 3.2 ( سطح API 13) و فراتر پیاده سازی گردیده‌است.
لطفا به خاطر داشته باشید که استعمال از Android Support Library در نرم افزار های شما ترجیح داده میشود. با به کار گیری از این کتابخانه ها می‌توانید بازار مشتریان و یوزرها نرم افزار خویش را ارتقاء دهید.
دانلود کردن support library
به خیال و خاطر داشته باشید که پیش از نصب پکیج های support library ، مشخص و معلوم کرده باشید که از کدام خصوصیات میل دارید در نرم افزار خویش به کار گیری فرمائید.
پکیج Android support library از روش Android SDK Manager قابل دسترسی میباشد .
فرآیند تحت را برای دانلود support library از روش SDK Manager دنبال نمایید :
Android SDK Manager را گشوده نمائید.
در پنجره ی SDK Manager به انتهای لیست پکیج ها رفته و پوشه extras را پیدا نمائید.
آیتم Android Support Library را تعیین نمائید.
روی دکمه ی Install packages کلیک نمایید.

چه گونه هایی از Bottom Sheet داریم؟

۲۱ بازديد
بسته به نیاز سه نوع Bottom Sheet وجود دارااست که عبارتند از:
Bottom Sheet های استاندارد
Bottom Sheet استاندارد، محتوایی را علامت می‌دهند طراحی اپلیکیشن در مشهد که محتوای اساسی ورقه را کامل شدن می نماید. این Bottom Sheet ها در حالی که یوزرها با محتوای اساسی رابطه برقرار می نمایند قابل مشاهده می باشند. هنگامی که از Bottom Sheet استاندارد به کار گیری می‌کنید ، مخاطب می‌تواند Bottom Sheet و بقیه قسمتهای ورقه را به طور همزمان مشاهده کرده و با آنان تعامل نماید. این نوع Bottom Sheet در شکل نیاز به ایفا یکسری عمل هم‌زمان اثرگذار میباشد. شایسته ترین مورد برای نرم افزار هایی مانند پخش کننده موسیقی میباشد چون به یوزرها قابلیت و امکان میدهد هنگام مرور گالری ها ، موسیقی در هم اکنون پخش خویش را نیز در اختیار گرفتن نمایند. رایاپارس در تصویر پایین Bottom Sheet استاندارد را در تحت ورقه به رنگ آبی‌رنگ می‌بینید:
Modal Bottom Sheet یا این که Bottom Sheet مقید
BottomSheetDialogFragment یک نوع Fragment در کتابخانه امان اندروید میباشد که فرگمنت شما‌را تحت عنوان یک Bottom Sheet مقید ارائه میدهد و اصولاً تحت عنوان یک دیالوگ (فریم خودمانی) شغل می نماید و شایسته ترین آیتم برای منوها و دیالوگ های بی آلایش میباشد. این کادرهای گفتگوی Bottom Sheet روی محتوای مهم را می پوشانند و برای تعامل با محتوای مهم بایستی آن ها را بست زیرا در طول اکران این قاب یک پوشش تار محتوای اساسی را می پوشاند. در شرایطی که به محتوای سوا Bottom Sheet ضربه زده خواهد شد ، Bottom Sheet بسته می‌گردد. Bottom Sheet های مقید را می شود به شکل عمودی کشید و با کشیدن بی نقص آن‌ها به سمت تحت آنها‌را بست. در تصویر ذیل یک Modal Bottom Sheet یا این که Bottom Sheet مقید می‌بینید:
Bottom Sheet قابل توسعه
Expanding bottom sheets یا این که Bottom sheet های قابل پیشرفت ، سطح خرد و فرو ریخته ای را آماده می نماید که می‌تواند در شکل نیاز به وسیله استفاده کننده توسعه و گسترش یابد تا فضای بیشتری به آن تخصیص یابد. این نوع شایسته ترین خصوصیت های دو نوع گذشته Bottom Sheet ها را ارائه می نماید؛ دسترسی مداوم نوع استاندارد و اطراف و تمرکز نوع مقید.

10 کتابخانه جالب JavaScript و CSS

۱۸ بازديد
سعی ما بر این است شمارا با جذاب‌ترین و به‌روزترین طراحی اپلیکیشن در مشهد روندهای بسط اینترنت آشنا کنیم. از این رو هر یک‌سری وقت یک توشه تیم‌ای از شایسته ترین منابع را یافته و آن ها را با شما به اشتراک میگذاریم. امید داریم که گزینه دقت شما عزیزان قرار گیرد.
FBT
یک کادر‌ورک فی مابین‌المللی که به ترجمه اینترنت‌وب سایت‌ها رایاپارس و نرم‌افزار‌ها به لهجه‌های متعدد یاری می‌نماید. اصولا این کتابخانه به وسیله گروه چهره‌بوک برای به کار گیری داخلی پیشرفته بود، ولی فعلا به طور منبع گشوده (open-source) با جواز MIT بدون‌پول در دسترس میباشد.
نقشه روش (Roadmap) برای تبدیل شدن به توسعه و گسترش‌دهنده اینترنت در سال 2019
یک GitHub repo جذاب با داده ها عمیقی در خصوص مهمترین مهارت‌هایی که یک توسعه و گسترش‌دهنده بایستی در سال 2019 داشته باشد. راهنماها در نمودارهای فوق‌العاده ظریف سازماندهی گردیده‌اند که Front-end، Back-end و Devops توسعه و گسترش اینترنت را پوشش میدهند.
Mesh Lines Animated
Mesh Lines Animated گروه‌ای از پنج دموی متحرک شگفت‌انگیز است که با کتابخانه MeshLine، WebGL و three.js تشکیل شده‌اند. شما می توانید این مثال‌ها را در پروژه‌های خویش به صورت تماما بدون‌پول به کار گیری نمایید. همینطور می توانید دموها را در بعدی سفارشی‌ نمائید.
حذف پس‌قضیه عکس
نرم افزار اینترنت عالیی که عکس را گرفته و آن را تجزیه می‌نماید و پس‌موضوع را با تمرکز بی نقص پیکسل حذف می‌نماید. شما میتوانید سریعا نرم افزار را با یک فولدر عکس یا این که به آسانی با وارد کردن URL عکس آزمون نمائید. حاصل حقیقتا موءثر میباشند، به ویژه برای ابزار مجانی.
SimpleBar
کتابخانه JavaScript و CSS که ظواهر نوارهای پیمایشی را در اپلیکیشن شما آپ دیت می‌نماید. این کتابخانه بسیار شل جایگزین نوارهای پیمایش پیش‌فرض مرورگر می‌گردد و در کلیه مرورگرها مشابه به هم میباشند. مورد‌های سفارشی گرانبهایی را ارائه می دهد و دارنده مستندات خیر و خوبی یاور با مثال‌های فراوان میباشد.

ارسال داده بین فرگمنت ها

۲۷ بازديد
درین فراگیری ، ما طرحی میسازیم که مشتمل بر TabLayout ، ViewPager و Fragment ها باشد. در‌این نرم‌افزار عملکردی را طراحی خوا هیم کرد که داده را از یک فرگمنت به فرگمنت دیگر منتقل می نماید.
Intent ها تنها برای ارسال داده در میان اکتیویتی ها قابل استعمال می‌باشند. طراحی اپلیکیشن در مشهد برای جابجایی اطلاعات فی مابین فرگمنت ها بایستی اینترفیس های خودمان را تولید کنیم. فرآیند ارسال داده های فن ای از یک فرگمنت به فرگمنت دیگر در ذیل معلوم گردیده است.
FragmentOne (ارسال کننده) : درون این فرگمنت اینترفیسی با اسم SendMessage تعریف‌و‌تمجید گردیده است. این اینترفیس دارنده متدی به اسم sendData(String) میباشد. برای ارسال فن string به FragmentTwo بایستی اسلوب sendData از اینترفیس SendMessage را فراخوانی فرمایید.
MainActiity (جابجایی دهنده): این اکتیویتی دارنده یک ViewPager میباشد. این ViewPager دارنده دو فرگمنت (فرگمنت های FragmentOne و FragmentTwo) میباشد. این اکتیویتی اینترفیس SendMessage را طراحی می نماید و در روال sendData ی آن ، string دریافتی را با فراخوانی سیاق displayReceiedData از فرگمنت FragmentTwo ، به آن منتقل می نماید
FragmentTwo (اخذ کننده): این فرگمنت دارنده متدی به اسم displayReceiedData(String) میباشد که داده دریافتی را اکران می‌دهد.
طراحی روند فوق را آغاز میکنیم.
ساختار پروژه
کد xml برای کلاس MainActivity.java در تحت بیان شده میباشد:
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.clicksite.passingdatabetweenfragments.MainActivity">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
android:id="@+id/tabs"
style="@style/MyStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed" />
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
استایل های TabLayout و ToolBar همان طور که در ذیل آرم داده شد‌ه‌است ، در پوشه styles.xml تعریف و تمجید گردیده اند: