Farzad Sarseifi

مدیریت انجمن
  • تعداد ارسال ها

    2,051
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    162

تمامی ارسال های Farzad Sarseifi

  1. String root = "/data/data/" + getPackageName() + "/" + "image/"; از طریق این مسیر میتوانید مسیر دهی کنید
  2. بله ، کلاس LocationListener نیازی به AsyncTask نداره
  3. این خطا داخل Adapter شما رخ داده است و برای out of memory میباشد بنظرم تصاویری که نمایش میدهید دارایحجم بالایی میباشد و بخاطر همین بخاطر کمبود memory برنامه کرش میکند
  4. شما حتما وقتی یک برنامه تهیه میکنید حتما باید روی چندین دیوایس مختلف و ورژن های اندروید تست کنید. چونکه بعضی ارور ها مربوط به سخت افزار میشود و باید بررسی کنید.
  5. تمای متدهای کلاس log را چاپ نوشته در Log cat میباشد و تفاوت انها : Log.d(); // Debug Log.i(); // Info Log.w(); // Warning Log.e(); // Error
  6. Kotlin (کاتلین) یک زبان برنامه‌نویسی‌ست که با استفاده از آن میتوان برنامه نویسی اندروید را توسعه داد. نسخه های اخیر اندروید استودیو به طور رسمی از کاتلین پشتیبانی می‌کنن، مسئله‌ای که در Google IO 2017 اعلام شد. با تشکر انجمن اندروید ایران
  7. در آموزش قبلی آموختیم که زبان کاتلین دارای چه قدرت هایی میباشد .بر همین اساس در این جلسه آموزشی یاد خواهیم گرفت که به چه صورتی بتوانیم از کاتلین در اندروید استودیو استفاده کنیم ابتدا محیط اندروید استودیو را باز کنید Android studio 3.0 تیک گزینه کاتلین را انتخاب کنید و سپس گزینه finish را انتخاب کنید تا پروژه ساخته شود برای ورژن های اندروید استودیو 2 .x به بالاتر شما حتما باید پلاگین کاتلین را نصب کنید از طریق مسیر file->Settings->plugin و گزینه kotlin را جستجو نمایید Project level app.gradle 1- تعریف کردن ورژن kotlin در زمانی که از ورژن های 1.1.3-2 استفاده میکنید 2- Dependency کاتلین را اضافه میکنیم app level app.gradle 1- پلاگن کاتلین اضافه میشود به ماژول ها 2- kotlin یک کتابخاه استاندارد میباشد.برای اینکه بیشتر در مورد این کتابخانه بدانیم از ادرس kotlinlang.org استفاده کنید پسوند فایل های کاتلین kt میباشد. در تصویر زیر تفاوت کاتلین و جاوا مشخص میشود 1- تمامی ارث بری ها با color (دو نقطه) انجام میشود(extends در جاوا) 2- وقتی یک متد overrideمیشود حتما میبایستی از کلمه کلیدی override استفاده کنیم 3- حتما باید بعد از تعریف کرد یک آبجکت از ? (علامت سوال) استفاده کنید. حالا خروجی به این صورت میباشد
  8. دستور اول (TextView tv= (TextView) gridAnswer.findViewWithTag(thischar یک ویجت از نوع TextView را با نام tv تعریف میکنید که دارای id تعریف شده thiscar میباشد که داخل View میباشد به نام gridAnswer اما بهتره به این صورت تعریف کنید اگر ویجت شما در xml لایوت قرار گرفته است. TextView tv= (TextView)findViewById(R.id.tv) دستور دوم ( tv.setText(String.valueOf(thischar; این خط کد برای این میباشد که مقدار thischar را درون کنترل tv نمایش دهد. اما چونکه مقدار عددی میباشد حتما باید string تبدیل شود و از دستور String.valueof استفاده شده است
  9. سلام متد برای این میباشد که ویجت مورد نظر یک متن داده شود تا نمایش دهید متد برای این میباشد که بتوان به ویجت ها بصورت داینامیک id اختصاص داد،
  10. بازه های دید یا zone در برنامه نویسی هستش Publicدر تمامی کلاس ها و پکیج ها Private فقط در کلاس جاری Protected در پکیج جاری و کلاس های پکیج جاری
  11. animation.setRepeatCount(Animation.INFINITE); //Repeats animation indefinitely.
  12. ابتدا در anim یک فایل به اسم alpha_scale_animation ایجاد کنید برای animation : <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <scale android:fromXScale="0.7" android:toXScale="1.0" android:fromYScale="0.7" android:toYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:duration="4000" android:repeatCount="infinite" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" android:repeatMode="reverse" android:repeatCount="infinite" /> </set> سپس در اکتیویتی Animation connectingAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.alpha_scale_animation); myView.startAnimation(connectingAnimation); و همچنین کد متوقف کردن انیمیشن : myView.clearAnimation(); connectingAnimation.cancel(); connectingAnimation.reset();
  13. عملگرها در کاتلین در این جلسه آموزشی قصد داریم که در کاتلین بیاموزیم به چه صورتی میتوانیم از کاتلین استفاده کنیم.اما قبل از اینکه این مطلب آموزشی را شروع حتما آموزشی های زیر را مطالعه نمایید تا بتوانید تمامی مفاهیم پیش رو را بیاموزید Binary operators کاتلین یک زبان قدرتمند برای عملگرهای شرطی میباشد. بقیه زبان ها مشابه جاوا ، کاربر نمی تواند عملگرهای ریاضیات در برای نوع های اصلی استفاده کند اگر شما میخواهید از عملگرها برای ارایه استفاده کنید نمی توانید اینکا را انجام دهید،اما در کاتلین این براحتی ممکن میباشد .کاتلین مجموعه کاملی از عملگرها را شامل میشود اگر شما از کاتلین 1.1 استفاده میکنید میبایستی از متد rem() بجای mod() استفاده کنید و این دستور deprecate شده است data class Test(){ operator fun plus(increment : Int): Test{ return Test(count + increment ) } operator fun times(multiply : Int): Test{ return Test(count + multiply) } } var test=Test(10) println(test+10) //output -> Test(count =20) println(test*2) //output -> Test(count =12) Increment and Decrements بله، ++ و -- عملگرات بسیار کاربردی هستند،اما در کاتلین میتوانید با استفاده از متدهای زیر اینکار را انجام دهید Assignments operators با استفاده از Assignments operators میتوانید مقادیر متغیرها را تغییر داد،شما میتوانید اینکار را با صدا زدن متدهای مربوطه انجام داد Rest of Operators در کاتلین خیلی زیادی متد و کاربردی وجود وجود دارید که در اینجا با تعدادی از آنها آشنا خواهیم شد نتیجه گیری : در این آموزش آموختیم که در کاتلین به چه صورتی میتوان از function های Operator ها استفاده کرد
  14. [align=center][/align] Proguard : برای امنیت اپلیکیشن های اندروید و همچنین کاهش حجم خروجی برنامه مورد استفاده قرار میگیرد.شاید تا چندی قبل یکی از مشکلات امنیتی اپلیکیشن های اندروید به سادگی کامپایل و دیکامپایل کردن انها بود،اما از زمانی که گوگل Proguard را معرفی کرد توانست حداقل بیشتر راه های نفوذ را ببند و سعی در ارتقای امینیت اپلیکیشن های اندروید مدیریت کند. در این مثال نمونه مثالی ساده برای Proguard در اختیار کاربران گرامی انجمن پی سی دروید قرار میگیرد با تشکر ProguardSample.zip
  15. در این مقاله، میخواهیم یاد بگیریم به چه صورتی میتوانیم متغیر ها را در کاتلین تعریف نماییم قبل از شروع این آموزشی حتما مطلب آموزشی زیر را مطالعه کنید تعریف متغیر ها در کاتلین،همه چیز یک OBject میباشد ،زیرا در کاتلین نوع اصلی نمی توانیم پیدا کنیم تعریف اولین متغیر شما میتوانید براحتی با کلمه کلیدی val یا var متغیر و نوع آن را تعریف کنید var i: Int=1 var d: Double=1.1 var f: Float=1.1F var l : Long=1L var c : Char ='c' var s: String="P30droid" با همین مثال های بالا ما تعداد شی با مقداد دهی اولیه ایجاد کنیم در کاتلین سمی کالن نداریم حافظه متغیر ها در کاتلین همچنین درکاتلین میتوانید متغیر یک متغیر جدید را بدون تعریف نوع آن فقط با مقداردهی یک متغیر دیگر که قبلا تعریف شده است را ایجاد کرد var ii= i+1 var dd= d+2.0 var ff= f+1 var ll= 1+1 var ss=s + "Iranian developers forum" println("ii : $ii , dd: &dd, ff: $ff,ll : &ll,ss : &ss") خروجی ii :2, dd : 3.1, ff :2, ss :P30droid Android Developers forum رشته ها در کاتلین : کار کردن با رشته ها در کاتلین به سادگی آب خوردن هستش var s : "Android" var ss : "My name is $s" // My name is Android var c : s[2] // this will assign character 'i' با صدا زدن کاراکتر & میتوانید به مقدار یک متغیر دسترسی پیدا کرد Type Casting در کاتلین در کاتلی به سادگی میتوانید Type Casting را انجام دهید var i: Int =1 var d: Double = i // Not possible var d : Double = t.toDouble() // Ok
  16. کاتلین چیست ؟ کاتلین یک زبان برنامه نویسی تایپ اسکریتی میباشد برای ماشین مجازی JVM که اندروید ومروگر های بطوررسمی توسط گوگل برای اندروید پشتیبانی میشود. زبان برنامه نویسی کاتلین توسط شرکت Jetbrain توسعه داده شده است .شرکت Jetbrain ایجاد کننده Intellij idea میباشد ،اندروید استودیو نیز براساس Intellij میباشد .در مراسم گوگل i/o 2017 گوگل بطور رسمی کاتلین را زبان رسمی توسعه اندروید بنا نهاد. چرا کاتلین : با استفاده از زبان کاتلین کدهای کمتری خواهید نوشت و با عملیات های بسیار بالا.در جاوا. اگر شما میخواهید یک data کلاس ایجاد کنید مدت زمان زیادی را باید صرف ساخت members و getter و setter ها کنید،اما در کاتلین شما میتوانید اینکار را با کدهای خیلی کمتری انجام دهید data class Person( var id : Long, var name:String, var age: Int) همچنین یک نکته خوب دیگه : Null safe در زبان برنامه نویسی جاوا هنگام کد نویسی با مقدار Null pointer exception زیاد روبه روبه میشوید.اما بااستفاده از زبان برنامه نویسی کاتلین خطای Null pointer exception هیچوقت رخ نخواهد داد چگونه میتوانیم از کاتلین استفاده کنیم ؟ از اندروید استودیو 3.0 کاتلین بطور کامل پشتیبانی میشود. در ورژن های حال حاضر میتوانید پلاگی کاتلین را نصب کنید و از زبان برنامه نویسی کاتلین استفاده کنید.
  17. میخواهید که چک کنید همچنین شماره موبایلی وجود دارد یا خیر ؟؟
  18. بالاخره شرکت گوگل اسم نهایی اندروید ۸ را اعلام کرد. این نسخه از اندروید، Oreo نام دارد که نوعی بیسکوییت است. نسخه نهایی اندروید جدید هم از امروز برای دانلود روی گوشی‌ّهای پیکسل و نکسوس عرضه شده است. مایکروسافت در گیمزکام ۲۰۱۷ دنباله یکی از بهترین بازی‌های استراتژی دنیا را معرفی کرد. بازی Age of Empires 4 که برای ویندوز ۱۰ ساخته می‌شود. این بازی را سازنده‌های مجموعه Company of Heroes میسازند. به نظر میرسد گران‌ترین مدل گوشی گلکسی نوت ۸ نزدیک به ۱۲۰۰ دلار قیمت خواهد داشت. این مدل از ۶ گیگابایت رم و ۲۵۶ گیگابایت حافظه داخلی بهره می‌برد. گوشی جدید سامسونگ فردا معرفی خواهد شد. Android 8.0 Oreo is here Smarter, faster, and more powerful than ever. OTA rollout is expected to arrive first to Pixel and Nexus devices https://www.android.com دانلود گیف اندروید Oreo doc_2017-08-22_09-30-00.mp4
  19. چندی قبل گوگل نسخه پیش نمایش توسعه دهندگان اندروید O را منتشر کرد که در واقع نخستین توزیع قابل دانلود از آن برای عموم محسوب می شود. البته قبل از آنکه بیش از اندازه هیجان زده شوید باید خاطرنشان کنیم که طبق اعلام گوگل این نسخه صرفا برای توسعه دهندگان منتشر شده و «برای استفاده روزانه یا کاربری» مناسب نیست. اولین پیش نمایش توسعه دهندگان اندروید جدید درست مانند هر ورژن دیگری که برای این قشر از کاربران عرضه می شود مملو از باگ است و «با مشکلات متعددی به لحاظ عملکرد و ثبات» روبروست. گفتنی است این ورژن از اندروید روی دستگاه های زیر قابل نصب خواهد بود: پیکسل و پیکسل اکس ال، پیکسل سی گوگل، نکسوس ۶ پی، نکسوس ۵ اکس و نکسوس پلیر. برای دانلود ایمیج های این نسخه نیز می توانید از طریق این لینک اقدام نمایید و هشدارهای انتشار آن (شامل لیست طولانی از باگ ها) را هم می توانید از طریق این لیست دریافت نمایید. خلاصه کلام اینکه حالا می توانید به شمایی کلی از امکانات و قابلیت های نسخه نهایی اندروید O دست پیدا کنید هرچند که هنوز نام اصلی آن مشخص نشده. در زیر فهرستی خلاصه وار از امکانات و قابلیت های این نسخه از اندروید را ملاحظه می کنید: نوتیفیکیشن های پیشرفته (کاربران به کنترل بالایی روی انواع مختلف اعلان دست پیدا می کنند) محدودیت های پس زمینه اپلیکیشن ها (برای بهبود عمر باتری) نمایشگر تصویر در تصویر (با فراهم نمودن امکاناتی شامل مشاهده ویدیو در حین چت یا استفاده از دیگر اپلیکیشن ها) آیکون های قابل انطباق وسعت رنگ زیاد برای اپلیکیشن ها پشتیبانی از کدک های صدای بلوتوثی باکیفیت همانطور که گفته شد این نسخه از اندروید صرفا برای توسعه دهندگان منتشر شده با این همه در دسترس بودن آن نشانه ایست بر اینکه کاربران معمولی این سیستم عامل نیز به زودی می توانند از اندروید O استفاده نمایند. منبع : http://dgto.ir/g28
  20. برای پیاده سازی اینکار باید در فایل مانیفست تگ زیر را اضافه کنید تا در صورتی کاربر در بخش Brower ها اپ شما را انتخاب کرد اطلاعات برای شما ارسال شود <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="example.com" android:pathPrefix="/someresource/" android:scheme="http" /> <data android:host="www.example.com" android:pathPrefix="/someresource/" android:scheme="http" /> </intent-filter> Here, scheme -> Protocol of particular site host-> Exact site url with WWW pathprefix - > Your site's sub path if available Now,
  21. بله براحتی میتوانید یاد بگیرید.
  22. شما باید با مفاهیم Team work آشنا بشوید تا بتوانیم اصول همکاری های تیمی را به درستی بیاموزیدو سپس اجرا کنید. بهتره برای شروع کتاب هایی که در این زمینه وجود دارد را مطالعه نمایید و سپس در زمینه کاری خود اجرا نمایید.
  23. در اندروید Repository management توسط Gradle انجام میگیرد. این اروری که اتفاق افتاده است برای این میباشد که کتابخانه مورد نظر وجود ندارد تا از نسخه کش شده استفاده کن و باید حتما آن را دانلود نمایید برای دانلود : 1- Gradle خود را آنلاین کنید 2- یک وی پی ان اجرا کنید 3- گزینه Sync Gradle را انتخاب کنید تا کتابخانه دانلود شود
  24. برای اینکه بتوانید که تمامی سایزها را پشتیبانی کنید بدون اینکه بهم ریختگی داشته باشید.باید برای سایز های مختلف طراحی کنید layout layout-sw600dp تبلت 7 اینچ layout-sw720dp تبلت 10 اینچ
  25. آیا برای Layout های خود برای سایز های زیر نیز طراحی کرده اید؟ layout-sw600dp layout-sw720dp