Farzad Sarseifi

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

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

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

  • Days Won

    183

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

  1. با سلام خدمت تمامی دوستان گرامی انجمن پی سی دروید. همانگونه که طول یکسال گذشته تا حدودی با محیط اندروید استودیو که بر پایه intelli Idea بوده آشنا هستید. در طی چند روز گذشته وب سایت توسعه دهندگان اندروید به طور کامل محیط اکلیپس را از سایت خود حذف کرده است و فقط Android Studio را برای دانلود در اختیار قرار داده است و این به مبنای خداحافظی با اکلیپس میباشد.لذا در صورتی که هنوز با اکلیپس برنامه های اندروید را تولید میکند، به محیط اندروید استودیو مهاجرت نمایید. با سپاس فراوان
  2. بهتره که یک دیتابیس داشته باشید و تصویر هاتون رو داخل دیتابیس تعریف کنید و میتونید از flipboard برای لود کردن viewpager استفاده کنید. آموزش ساخت کتاب ساز در اندروید را بررسی کنید که در تالار پروژه های اندروید قرار دارد.
  3. [shcode=java] double screenInches; DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); double x = Math.pow(dm.widthPixels / dm.xdpi, 2); double y = Math.pow(dm.heightPixels / dm.ydpi, 2); screenInches = Math.sqrt(x + y); [/shcode]
  4. کار بیسار ارزنده ای رو انجام دادید و میتواند به روند یادگیری برنامه نویسان کشورمون نیز کمک زیادی کنه.
  5. کتابخانه Android-Validator کتابخانه Android-Validator یک کتابخانه بسیار کاربردی و ضروری هستش که هنگامی فرم هایی زیادی داریم و قراره Validate های زیادی را انجام دهیم و لذا مجبوریم کدهای زیادی را بنویسیم و به همین سبس وقت زیادی را از توسعه دهنده میگیرید. این ابزار دارای Validate های زیادی میباشد که در لیست زیر تعدادی از آن ها ذکر شده اند: [align=left]EmailValidator : Ensures that the field does contain a email address. You can also define a regex to check for a particular domain name with the function setDomainName(DomainRegexp). Example for gmail.com domain : setDomainName("gmail\\.com").[/align] [align=left]NotEmptyValidator : Ensures that the field is not empty.[/align] [align=left]UrlValidator : Ensures that the field is a valid url.[/align] [align=left]AlnumValidator : Ensure that the feld has Alnum characters.[/align] [align=left]HexValidator : Ensure that the field has Hex characters.[/align] [align=left]RegExpPattern : Ensure that the field does match setted Pattern.[/align] [align=left]PhoneValidator : Ensure that the field is a valid phone number.[/align] [align=left]RangeValidator : Validates whether the given value is bettween a range of values[/align] [align=left]NumericValidator : Checks whether the field contains only numeric digits[/align] [align=left]IPAddressValidator : Checks whether the field contains a valid IP Address[/align] [align=left]MockValidator : Used by dev as a placeholder while testing validation[/align] [align=left]Custom Validator : You can create your own Validator. To do this, you can just create class extends AbstractValidator[/align] [align=right]روش استفاده:[/align] [shcode=java][/shcode][align=right]Validate emailField = new Validate(email); emailField.addValidator(new NotEmptyValidator(mContext)); emailField.addValidator(new EmailValidator(mContext)); [/align] [shcode=java] [/shcode] [align=right]دریافت:[/align] [align=right]برای دانلود ابزار مورد نظر به آدرس زیر مراجعه کنید و یا از طریق فایل پیوست شده اقدام نمایید.[/align] [align=right]https://github.com/throrin19/Android-Validator[/align] [align=right]با سپاس [/align] [align=right]انجمن برنامه نویسی اندروید پی سی دروید[/align] Android-Validator-master.zip Android-Validator-master.zip
  6. برای اینکار میبایستی که آدرس یه پوشه که در sadcard قرار دارد را به عنوان آدرسی که قراره لیستی از فایل های آن گرفته شود قرار دهید سپس لیست فایل هایی که با پسوند مثلا jpgیا png بود آن را در یک ArrayList قرار دهید. و در مرحله اخر هم ArrayList را به آداپتر ویجت GalleyView ست کنید
  7. بله میتوانید از همین روش استفاده کنید و SharedPrefrences میتواند راه گشای مشکل باشد به صورت زیر پیاده سازی کنید: یک Layout بدین صورت ایجاد کنید: [shcode=java] xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bak" android:gravity="center" > android:id="@+id/edt_pass" android:layout_width="wrap_content" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_centerHorizontal="true" android:layout_marginBottom="10dp" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:inputType="text" android:paddingLeft="5dp" android:paddingRight="5dp" /> android:id="@+id/btn_login" android:layout_width="wrap_content" android:layout_height="40dp" android:text="login" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_below="@+id/edt_pass" android:layout_marginLeft="30dp" android:layout_marginRight="30dp"/> [/shcode] سپس در اکتیویتی مورد نظر: [shcode=java] public class Login extends Activity { EditText txt_pass; Button btn_login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_login); txt_pass=(EditText)findViewById(R.id.edt_pass); btn_login=(Button)findViewById(R.id.btn_login); btn_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub SharedPreferences preferences = getSharedPreferences( "user", 0); String pass=preferences.getString("pass", ""); Intent i=new Intent(getApplicationContext(),ListContact.class); if(pass.length()<=0) { SharedPreferences.Editor editor = preferences.edit(); editor.putString("pass", txt_pass.getText().toString()); editor.commit(); //ok its true } else { try { if(txt_pass.getText().toString().equalsIgnoreCase(pass)) { //ok its true } else { //cant login } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } } }); } } [/shcode]
  8. این دستور به این نکته اشاره میکنه که بهتره رشته رو بصورت دستی یا Hardcode ننویسید بهتره در فایل string.xml در مسیر res/values/string.xml یک تگ String ایجاد کنید. سپس بصورت پارامتری مقدار را ارجاع دهید [shcode=xml]android:text="@string/app"[/shcode] و در فایل string.xml : [shcode=xml] chapter one[/shcode]
  9. برای ارتباط با وب سرور ها بهترین راهکار وب سرویس میباشد که میتوانید از وب سرویس های رایج استفاده کنید.مثل soap،Json و....
  10. پس از یک دوره آزمایش با نام اندروید L گوگل چند روز پیش سرانجام نسخه پنجم اندروید را با نام Lollipop یا همان آب‌نبات چوبی معرفی کرد. اندروید جدید که به صورت پیش‌فرض بر روی نکسوس 6 و نکسوس 9 عرضه خواهد شد همچنین برای نکسوس 5، نکسوس 7 و نکسوس 10 نیز به همراه دستگاه‌های گوگلی پلی منتشر می‌شود. اندروید 5 که تقریباً یک سال بعد از معرفی اندروید 4.4 کیت کت معرفی شده است دارای یک طراحی جدید بوده و و تغییرات زیادی از جمله بهبود در سیستم Notification، Multi Tasking وموارد دیگر ایجاد کرده است. [align=center][/align] طراحی ظاهری جدید بزرگ‌ترین تغییری که اندروید آب نبات چوبی داشته است، تغییر ظاهری اساسی رابط کاربری آن است. در اندروید 5 از رنگ‌های روشن و غنی( Material Design ) بسیار استفاده شده است. و عمق‌های ایجاد شده با استفاده از سایه ها ظاهری تمیزتر و مینیمال تر به اندروید جدید داده است. در نسخه جدید سیستم عامل گوگل از فضای سفید بیشتری به ویژه در اطراف متن ها استفاده شده. لمس شدن منوها و صفحات مختلف می‌تواند با افکت‌های انیمیشنی مختلف مانند پخش شدن رنگ ها همراه شود. طراحی جدید را که آن را "طراحی متریال"( Material Design ) نام گذاری کردند بزرگ‌ترین تغییر در رابط کاربری اندروید در چند سال اخیر به حساب می‌آید. Notification عملکرد Notification ها نیز در اندروید جدید دستخوش تغییراتی شده است. بدین صورت که در اندروید 5 نیز مانند سیستم عامل آی او اس نوتیفیکیشن ها بر روی قفل صفحه نمایش نیز قابل مشاهده بوده و کاربر می‌توان از همان قسمت به نوتیفیکیشن ها پاسخ دهد. گوگل اعلام کرده است که اندروید به صورت هوشمند موارد مهم را زودتر به کاربر نشان می‌دهد و نوتیفیکیشن هایی که اهمیت ندارند را مخفی می‌کند. سیستم Notification پاپ آپ هم این امکان را در اختیار کاربران قرار می‌دهد که در بالای صفحه پیش نمایشی از پیغام های خود را داشته باشند و در صورت نیاز از همان قسمت به آن‌ها پاسخ دهند. امکان محدود کردن پیام ها وتماس های دریافتی در قسمت نوتیفیکیشن نیز در اندروید آب نبات چوبی گنجانده شده که بسیار شبیه سیستم Do not disturb سیستم عامل اندروید است. مولتی تسکینگ در سیستم جدید Multi Tasking، آخرین اپلیکیشن هایی که در سیستم اجرا شده‌اند در بخش به نام Recent به صورت دسته اس از کارت ها نشان داده می‌شوند. در این قسمت کاربر می‌توان مانند تب‌های مرورگر اپلیکیشن ها را مشاهده کرده و مورد مورد نظر را اجرا کند. به اشتراک گذاری دستگاه با معرفی نسخه جیلی بیلی اندورید امکان استفاده چند کاربر با اکانت های متفاوت برای تبلت های اندرویدی فراهم شد. اینبار با معرفی اندروید آبنبات چوبی این قابلیت در اختیار گوشی‌های همراه نیز قرار می‌گیرد. افراد می‌توانند اکانت های مختلف را برای گوشی خود تنظیم کرده و معین کنند که هر اکانت به کدام قسمت‌های گوشی می تواند دسترسی داشه باشد. امکان استفاده از اکانت میهمان نیز وجود دارد. [align=center][/align] ذخیره باتری با اندروید نسخه 5 قابلیت جدیدی به این سیستم عامل اضافه شده است که به کمک آن در مواقعی که شارژ باتری کم می‌شود، سیستم سرعت پردازش را کم کرده و برنامه‌هایی را که در پس زمینه فعال هستند محدود خواهد کرد. این قابلیت امکان تنظیم به صورت دستی نیز دارد تا در مواقعی که کاربر می‌خواهد فعال شود. گوگل ادعا می‌کند این حالت امکان استفاده 90 دقیقه بیشتر از گوشی را به کاربر می‌دهد. موارد دیگر - امکان استفاده از فرمان صوتی OK Google در زمانی که صفحه نمایش گوشی خاموش است - امکان استفاده از NFC برای انتقال اکانت ها و داده ها از گوشی قدیمی به گوشی جدید با سیستم اندروید 5 - عملکرد بهتر و بهینه‌شده مولتی مدیا و پخش صوت - امکانات حرفه ای تر عکاسی مانند پشتیبانی از فرمت RAW، تنظیمات لنز دوربین، سنسور و فلش دوربین - امکان پیش‌نمایش پرینت بی سیم و انتخاب صفحاتی خاص برای پرینت - پروتوکل پیشرفته تر جستجو و اتصال به شبکه وای فای و دستگاه‌های مجهز به بلوتوث - پشتیبانی از دستگاه‌هایی با معماری پردازنده 64 بیتی مانند نکسوس 9 و اپلیکیشن های نوشته‌شده برای سیستم‌های 64 بیتی - پشتیبانی از بیش از 68 زبان بین‌المللی در نسخه جدید اندروید
  11. رونمایی از اندروید ال (Android L) هیجان انگیزترین خبر نطق اصلی کنفرانس توسعه دهندگان گوگل بود. مراسم کاملا طولانی و پر از رونمایی متفاوت از نسخه های فرعی اندروید بود. [align=center][/align] اندروید L معرفی شده است و در زمینه امنیت، مصرف باتری، عملکرد سخت افزاری (پشتیبانی از پردازش64 بیتی) پیش رفت داشته است و البته رابط کاربری و طراحی کاملا نو را ارایه می کند. برای آشنایی دقیق تر با اندروید L به آدرس زیر رفته و رفرنس های مربوطه را مطالعه نمایید. developer.android.com
  12. کتابخانه SmoothProgressBar یکی از ابزارهای بسیار کاربردی و جذابی هستش که میتونه جایگزین مناسبی برای ویجت ProgressBar پیشفرض اندروید باشد و دارای UI حرفه ای میباشد و بیانگر گرافیک بالای اندروید است. نحوه استفاده: ابتدا پروژه مورد نظر را به IDE خودتان اضافه کنید و به عنوان Library به پروژه ای که قراره روی آن این کتابخانه را استفاده کنید اضافه کنید.در مرحله بعد در فایل layoutی که قراره این ویجت نمایش داده شود کدهای زیر را قرار دهید. xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="true" app:spb_sections_count="4" app:spb_color="#FF0000" app:spb_speed="2.0" app:spb_stroke_width="4dp" app:spb_stroke_separator_length="4dp" app:spb_reversed="false" app:spb_mirror_mode="false" app:spb_progressiveStart_activated="true" app:spb_progressiveStart_speed="1.5" app:spb_progressiveStop_speed="3.4" /> یا xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:indeterminate="true" app:cpb_color="#FFee44" app:cpb_colors="@array/mycolors" app:cpb_rotation_speed="1.0" app:cpb_sweep_speed="1.0" app:cpb_stroke_width="4dp" app:cpb_min_sweep_angle="10" app:cpb_max_sweep_angle="300" /> و یا در بخش استایل ها @style/GNowProgressBar @style/CircularThemeProgressBar 0dp 2 1.7 2 3.4 spb_interpolator_acceleratedecelerate true true @array/gplus_colors true @color/cpb_default_color @dimen/cpb_default_stroke_width @integer/cpb_default_min_sweep_angle @integer/cpb_default_max_sweep_angle @string/cpb_default_sweep_speed @string/cpb_default_rotation_speed در صورتی که نیاز دارید در بخش اکتیویتی آن را استفاده کنید: mProgressBar.setIndeterminateDrawable(new SmoothProgressDrawable.Builder(context) .color(0xff0000) .interpolator(new DecelerateInterpolator()) .sectionsCount(4) .separatorLength(8) //You should use Resources#getDimensionPixelSize .strokeWidth(8f) //You should use Resources#getDimension .speed(2f) //2 times faster .progressiveStartSpeed(2) .progressiveStopSpeed(3.4) .reversed(false) .mirrorMode(false) .progressiveStart(true) .progressiveStopEndedListener(mListener) //called when the stop animation is over .build()); برای دریافت کتابخانه مورد نظر میتوانید از طریق لینک زیر یا از طریق فایل پیوست شده این پست اقدام نمایید. https://github.com/castorflex/SmoothProgressBar با سپاس انجمن برنامه نویسی اندروید پی سی دروید. SmoothProgressBar-master.zip SmoothProgressBar-master.zip
  13. میتونید از سایت استفاده کنید و طریقه نصب رو بطور کامل آموزش داده http://www.appsforpcworld.com/whatsapp-for-pc-download-windows-78xp/
  14. [shcode=java] int b = Integer.parseInt("444");[/shcode] یا برای EditText [shcode=java] int b = Integer.parseInt(edt_input.getText().toString());[/shcode]
  15. من با نظر Majid Ebrahimi مخالف هستم به این دلیل که به اندروید یا کلا موبایل به عنوان شغل دوم یا دانشجویی به آن نگاه شود. ما در هر حال داریم با رشد تکنولوژی جلو میرویم و صنعت موبایل در حال گسترش میباشد و این صنعت باعث ایجاد یک بازار بزرگ میشود که میتواند به عنوان یک تخصص محسوب شود و همچنان نیز ادامه خواهد یافت. خدا رو شکر دیگه مثل یعنی یکی دو سال قبل نیس که هر کسی یه برنامه ساده و بی کیفیت را در مارکت ها قرار میداد و میتونست فروش خوبی داشته باشد امروز و در آینده وقتی قصد ایجاد و تولید یه استارت آپ را دارید باید به Business آن توجه شود و حتما حمایتی از تیم یا شرکت تولید کننده برنامه صورت پذیرد .وقتی کاری بدین صورت باشد حتما به نتایج خوبی خواهد رسید.
  16. http://android-learn.ir/13-%D9%88%D8%A7%D8%AD%D8%AF-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DA%AF%D8%A7%D9%87/portfolio/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%87%D8%A7%DB%8C-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C/23-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-android-studio-application-development.html
  17. اینکار امکان پذیر نمیباشد.چون اطلاعات دیتابیس بصورت رکوردی میباشد و ایده تون غلطه
  18. با برنامه Sqlite Expert براحتی اینکار امکان پذیر میباشد فقط کافی است قیلد خود را با کلید جهت دار به موقعیت دلخواه انتقال دهید
  19. [shcode=java] import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar.Tab; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //have to use getSupportActionBar from android.support.v7.app ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); } } [/shcode]
  20. جواب سوالات: 1- بله همگی بصورت ویجت هستند.چون ویجت های برنامه نویسی همگی از کلاس android.widget فراخوانی میشوند.دلیل همنام بودن آن ها بر این اساس میباشد که ویجت اسمی است که در کلیه سیستم عامل های موبایل به برنامه های که در صفحه اصلی هستند نیز گفته میشود. 2-Resource میباشد و بصورت Auto Generated بدین صورت که کلیه res ها دارای یک R.id خواهند بود 3-پکیج به مفهوم اسم کامل اپلیکیشن شما میباشد بدین وسیله که هنگامی که برنامه را تولید و به مارکتی ارسال میکنید باید دارای پکیج منحصر بفرد باشد اگر برنامه ای دیگه هم نام به اسم پکیج برنامه شما باشد از پذیرش برنامه شما خود داری خواهد شد. در مورد چند بخشی هم باید توجه کنید که باید اسم پکیج بصورت دو سیلابی یا بیشتر باشد.بخش اول مربوط به این میباشد برنامه شما آیا تجاری،سازمانی و یا شخصی میباشد تلقی میشود و در قسمت های دیگر اسم شرکت یا برنامه قرار گرفته میشود. com.p30droid.app ir.android.ashora
  21. بله میشه استفاده کرده..باید کتابخانه رو به پروژه خود اضافه کنید .. حتما به import هایی که انجام میدهید توجه داشته باشید.
  22. در تالار کتابخانه های اندروید موجود هستش http://p30droid.com/Thread-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-Android-Support-V7
  23. اینکار ایده درستی نمیباشد بهتره بجای اینکه یک مقدار عددی یا رشته ای قرار دهید تا شرط را بررسی کنید
  24. برای اینکار ابتدا آموزش های زیر را مطالعه نمایید http://p30droid.com/Thread-AutoStartUp-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A7%D9%BE%D9%84%DB%8C%DA%A9%DB%8C%D8%B4%D9%86 و آموزش: http://p30droid.com/Thread-%D8%A7%D8%AC%D8%B1%D8%A7%DB%8C-Service-%DB%8C%DA%A9%D8%A8%D8%A7%D8%B1-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%87%D9%85%DB%8C%D8%B4%D9%87-%D9%88-intent-filter-%D9%87%D8%A7-%D8%AF%D8%B1-BroadcastReceiver-%D9%87%D8%A7
  25. http://p30droid.com/Thread-%DA%A9%D8%AA%D8%A7%D8%A8-%D8%B3%D8%A7%D8%B2-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF