برترین های انجمن

  1. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


    • امتیاز: پسندیدن (Likes)

      147

    • تعداد ارسال ها

      1,463


  2. a.khosroabadi

    a.khosroabadi

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      35

    • تعداد ارسال ها

      68


  3. Seyed-Hossein-Akbari

    Seyed-Hossein-Akbari

    سرپرست انجمن


    • امتیاز: پسندیدن (Likes)

      26

    • تعداد ارسال ها

      1,112


  4. Razieh Shahraki

    Razieh Shahraki

    مدیر انجمن


    • امتیاز: پسندیدن (Likes)

      24

    • تعداد ارسال ها

      973



Popular Content

Showing most liked content since ۱۳/۰۳/۱۲ in all areas

  1. 6 likes

    نگارش 1.0.0

    121 دانلود

    سورس اپلیکیشن whatsApp یک اپلیکیشن چت و سورس باز که بصورت رایگان در اختیار کاربران انجمن اندروید ایران قرار گرفته است. دانلود سورس اپلیکیشن واتزاپ Whatschat- Whatsapp clone نسخه 1.0 Real time chat functionality Whatsapp feel Add Friends User Profile and Status User online and offline system Create Group and add friends to group Chat in group Chat with friends Login and Registration System

    رایگان

  2. 5 likes

    نگارش 1.0.0

    374 دانلود

    سورس اندروید استودیو فروشگاه اینترنتی + وب سایت + وبسرویس زبان ها جاوا + php

    رایگان

  3. 3 likes
    برای این حالت باید به TabLayout خودتون حالت scroll را ست کنید <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" app:tabMode="scrollable" />
  4. 3 likes
    سلام حتما از اسم موضوع تعجب کردید ! ولی باید بگم چاقوی کره خوری یه کتاب خونه هست واسه برنامه نویسی اندروید که یه قسمتی رو که حتما تا حالا خستتون کرده رو تفاوت توش ایجاد کرده FindViewById حتما این قسمت میدونید دیگه واسه تعریف ویجت هاست در کد Java حالا با این کتابخونه ما این قسمتو توش تغییر ایجاد میکنیم دیگه جا نوشتن FindViewById مینویسیم @BindView(R.id.user) EditText username; خوب حالا بریم سراغ آموزش اول این کتابخونه رو اضافه کنید به پروژتون dependencies { compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' } حالا سینک کنید پروژه رو و برید یه ویجت بذارید تو فایل XML بیاید تو کد جاوا و مثلا اینو بنویسید در زیر کلاس اصلیتون(توی توابع ننویسید.جایی بذارید همه جا در دسترس باشه) که کد در کل به این حالت در بیاد class ExampleActivity extends Activity { @BindView(R.id.user) EditText username; @BindView(R.id.pass) EditText password; @BindString(R.string.login_error) String loginErrorMessage; @OnClick(R.id.submit) void submit() { // TODO call server... } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.simple_activity); ButterKnife.bind(this); // TODO Use fields... } } توجه کنید کد ButterKnife.bind(this); فراموش نشه که بذاریدش تو تابع onCreate دوستان لینک کامل آموزش خودشم اینجاس ببخشید یکم سر سری توضیح دادم
  5. 3 likes
    یک کلاس ایجاد کنید برای اینکه بتوانید روی EditTextکاری کنید فقط یبار دات لود شود : public class DecimalTextWatcher implements TextWatcher { private NumberFormat numberFormat = NumberFormat.getNumberInstance(); private EditText editText; private String temp = ""; private int moveCaretTo; private int integerConstraint; private int fractionConstraint; private int maxLength; /** * Add a text watcher to Edit text for decimal formats * * @param editText * EditText to add DecimalTextWatcher * @param before * digits before decimal point * @param after * digits after decimal point */ public DecimalTextWatcher(EditText editText, int before, int after) { this.editText = editText; this.integerConstraint = before; this.fractionConstraint = after; this.maxLength = before + after + 1; numberFormat.setMaximumIntegerDigits(integerConstraint); numberFormat.setMaximumFractionDigits(fractionConstraint); numberFormat.setRoundingMode(RoundingMode.DOWN); numberFormat.setGroupingUsed(false); } private int countOccurrences(String str, char c) { int count = 0; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == c) { count++; } } return count; } @Override public void afterTextChanged(Editable s) { // remove to prevent StackOverFlowException editText.removeTextChangedListener(this); String ss = s.toString(); int len = ss.length(); int dots = countOccurrences(ss, '.'); boolean shouldParse = dots <= 1 && (dots == 0 ? len != (integerConstraint + 1) : len < (maxLength + 1)); boolean x = false; if (dots == 1) { int indexOf = ss.indexOf('.'); try { if (ss.charAt(indexOf + 1) == '0') { shouldParse = false; x = true; if (ss.substring(indexOf).length() > 2) { shouldParse = true; x = false; } } } catch (Exception ex) { } } if (shouldParse) { if (len > 1 && ss.lastIndexOf(".") != len - 1) { try { Double d = Double.parseDouble(ss); if (d != null) { editText.setText(numberFormat.format(d)); } } catch (NumberFormatException e) { } } } else { if (x) { editText.setText(ss); } else { editText.setText(temp); } } editText.addTextChangedListener(this); // reset listener // tried to fix caret positioning after key type: if (editText.getText().toString().length() > 0) { if (dots == 0 && len >= integerConstraint && moveCaretTo > integerConstraint) { moveCaretTo = integerConstraint; } else if (dots > 0 && len >= (maxLength) && moveCaretTo > (maxLength)) { moveCaretTo = maxLength; } try { editText.setSelection(editText.getText().toString().length()); // et.setSelection(moveCaretTo); <- almost had it :)) } catch (Exception e) { } } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { moveCaretTo = editText.getSelectionEnd(); temp = s.toString(); } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { int length = editText.getText().toString().length(); if (length > 0) { moveCaretTo = start + count - before; } } } فراخوانی : itemCostEditText.addTextChangedListener(new DecimalTextWatcher(itemCostEditText, 6, 2));
  6. 2 likes
    بله منظورم مستقیم نوشتن هستش.برای تست این موضوع میتونید یه فایل نوت پد جدید باز کنید و توش فارسی بنویسید زمانی که بخواهید سیو کنید به شما پیغام میده که فرمت رو تغییر بدین برای یونی کد شما تغییر ندید و به همون صورت ذخیره کنید و ببندید فایل وقتی دوباره باز کنید متن نوشته شده رو به صورت علامت سوال میبینید برای این کار شما داخفل فایل string.xml به این صورت بنویسید <string name="text1"> نمونه برای مثال</string> و داخل کلاس اکتیویتی هم به این صورت categoryList.add(getString(R.string.text1));
  7. 2 likes
    سلام، اینارو سمت سرور تعیین میکنه فقط شما باید موقعیت مکانی lat lang رو به سرور بفرستید و سرور براساس اون تبلیغات های مورد نظر رو بفرسته
  8. 2 likes
    این کد برای بسته شدن دراور هستش. برای اینکه از برنامه خارج بشین میتونید از متدهای زیر استفاده کنید finish(); System.exit(0);
  9. 2 likes
    خیلی خیلی ممنونم درست شد... فقط این کد drawerLayout.closeDrawers(); برای چی بود ؟ برای من فورس کلوز میدادو برنامم رو می بست حذفش کردم و یه سوال دیگه اگر بخوام با آیتم خروج برنامم بسته بشه باید چی بنویسم
  10. 2 likes
    این کد کامل این اکتیویتی من هستش. public class BaseActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { protected Toolbar mToolbar; protected DrawerLayout drawerLayout; protected NavigationView navigationView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_base); /* mToolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); */ drawerLayout = (DrawerLayout) findViewById(R.id.home_activity_drawer_layout); if (getWindow().getDecorView().getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) { getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL); } navigationView = (NavigationView) findViewById(R.id.navigation_view); navigationView.setNavigationItemSelectedListener(this); } @Override public boolean onNavigationItemSelected(MenuItem item) { drawerLayout.closeDrawers(); switch (item.getItemId()) { case R.id.plants_drawer: { Intent intent = new Intent(BaseActivity.this, PlantActivity.class); startActivity(intent); return true; } case R.id.fishes_drawer: Intent intent = new Intent(BaseActivity.this, FishActivity.class); startActivity(intent); return true; /* case R.id.pest_algae_drawer: Toast.makeText(getApplicationContext(), "pest", Toast.LENGTH_SHORT).show(); return true;*/ case R.id.calculator_drawer: Toast.makeText(getApplicationContext(), "calculator", Toast.LENGTH_SHORT).show(); return true; default: return true; } } private void showDrawer() { drawerLayout.openDrawer(GravityCompat.START); } private void hideDrawer() { drawerLayout.closeDrawer(GravityCompat.START); } @Override public void onBackPressed() { if (drawerLayout.isDrawerOpen(GravityCompat.START)) hideDrawer(); else super.onBackPressed(); } @Override protected void attachBaseContext(Context context){ super.attachBaseContext(CalligraphyContextWrapper.wrap(context)); } } این قسمت رو هم اضافه کنید. من فراموش کردم متاسفانه navigationView.setNavigationItemSelectedListener(this);
  11. 2 likes
    به نظر من یه راه خیلی سادش اینه یه متغیر boolean تعریف کنید وقتی dot وارد کرد true بشه و توی آنکلیک دکمه dot شرط انجام دستورات رو false بودن متغیر ها بذارید. در صورتی که قرار هست اون dot پاک بشه،میتونید تو textChange اون editText یه کد بنویسید چک کنه ببینه الان dot پاک شد؟؟پس متغیر رو false کن
  12. 2 likes
    سلام امروز میخوایم کار با کتابخونه volley رو با هم یاد بگیریم.با افزودن این کتابخونه میتونید ارتباط با کد php که در سرورتون نوشتید رو سریع تر و آسون تر کنید. به این صورت که اول با این کد به پروژه خودتون اضافش کنید. compile 'com.mcxiaoke.volley:library:1.0.19' اگه مشکلی در اضافه کردن این کتابخونه دارید کلیک کنید. خب بریم سراغ کد نویسی کد های زیرو بذارید اونجایی که قراره ارتباط بر قرار شه RequestQueue queue= Volley.newRequestQueue(this); StringRequest myRequest=new StringRequest(Request.Method.POST, "My link", new Response.Listener<String>() { @Override public void onResponse(String response) { Toast.makeText(LogReg.this, response, Toast.LENGTH_SHORT).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(LogReg.this, "خطا در ارتباط با سرور", Toast.LENGTH_SHORT).show(); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String , String> params = new HashMap<>(); params.put("username", "My Username"); params.put("password","My Password"); return params; } }; queue.add(myRequest); توضیحات: اولا که اونجایی که نوشتم Request.Method.POST در حقیقت داریم متد ارسال اطلاعات به فایل رابطمون رو تعیین میکنیم.قسمت mylink هم لینک فایل رو قرار میدید.تابع onResponse در صورت موفقیت آمیز بودن اجرا میشه و متن بازگشتی داخل متغیر response هست همچنین در صورتی که مشکل باشه تابع onErrorResponse اجرا میشه که با دستور error.tostring() به متن خطا دسترسی خواهید داشت.دو کد params.put هم مقادیرو ارسال میکنن(پارامتر اول اسم متغیر و دومی هم مقدار) و کد آخر هم در حقیقت درخواست ما که اسمش myRequest هستو تو صف ارسال (queue) قرار میده. تمام
  13. 2 likes
    ممنون آقای خسروآبادی اینکارایی که گفتید رو انجام میدم صرفا برای یاد گرفتنه وقتی یاد گرفتم و خواستم اپلیکیشن های خوب بسازم یه فکری برای این مشکل بر میدارم. از این که منو در حل این مشکل یاری کردید ممنونم آرزوی بهترین ها رو براتون دارم خدا نگه دار
  14. 2 likes
    نه بابا چرا شکست اخه تا جایی که من میدونم haxm باعث میشه سرعت بره بالا برای امولاتور ها.و نباید این خطارو بده ولی حالا که میده میشه رفت سراغ راه حل های بعدی. چندتا راه دارین اول به نظرم Genymotion نصب کنید خیلی عالیه.البته باید virtualBox 5 هم نصب کنید.من خودم ازین امولاتور استفاده میکنم. راه بعد نصب امولاتور های زامارین هستش من استفاده نکردم. راه اخر اینه که روی گوشیتون تست کنید.
  15. 2 likes
    با سلام 54 مگ گذاشتین برای دانلود ولی هنگام extract کردن faild میده !!!!
  16. 2 likes
    ممنون دوست عزیز
  17. 2 likes
    سلام برای api17+ ساپورت فارسی اضافه شده برای همین این سری موارد پیش میاد برای اینکه فقط برنامه ما درواقع یک جهت داشته باشه دو کار میشه انجام داد . یک ، اینکه توی منیفست Support rtl رو false بزارید که دیگه ساپورت فارسی نداشته باشه و به همون صورت اصلی باقی بمونه . دو ، اگه میخوایید اون ویژگی رو غیر فعال نکنید . برای ویوپیجر layoutDirection رو روی ltr بزارید . البته اگه توضیحات شما رو درست متوجه شده باشم .
  18. 2 likes

    نگارش 1.0.0

    73 دانلود

    سلام سورس کد اندروید موزیک پلیر مانند Spotify و Apple music همراه با سورس سمت سرور موفق باشید

    رایگان

  19. 2 likes
    میتونید چند تا Break point بزارید و با کلید F9 جابجا بشید
  20. 2 likes
    با سلام خدمت اساتید محترم من سابقه برنامه نویسی دارم ولی این اولین اپلیکیشن اندرویدمه و اگه امکانش هست نگاهی بهش بندازید و ایراداتش رو بهم بگید.الیبته اینم بگم اولین اپلیکیشن منه و دست تنهام پس زیاد سخت نگیرید https://cafebazaar.ir/app/iTrip.eTrip/?l=fa
  21. 2 likes
    کاربران گرامی انجمن اندروید ایران همانطور که مطلع هستید در تاریخ 19 آذر ماه 1395 ورژن جدید انجمن اندروید ایران ایجاد شده و دارای بخش های فراوانی همچون : مارکت اندروید چت رابط کاربری جذاب راحتی کار در موبایل آپلود سنتر داخلی برای بارگذاری فایل ها و... خوشحال خواهیم شد نظرات خود را با ما در میان بگذارید تا بتوانیم وب سایت بهتری در شان انجمن اندروید ایران را در اختیار کاربران قرار دهیم. با تشکر فرزاد سرسیفی
  22. 2 likes
    خیلی از قسمت های سایت هنوز مشکل دارن ویرایش پروفایل هم که فقط یه ایمیل مونده نه امضا هست نه خیلی چیزای دیگه و....
  23. 2 likes
    سلام.فایل نمونه قرار داد
  24. 2 likes
    تبریک میگم مهندس سرسیفی عزیز قالب جدید سایت بسیار خوب هستش هم به دلیل اینکه به صورت واکنشگرا می باشد و برای نمایش در هر محیطی مناسب قالبلیت چت هم بسیار خوب است به دلیل اینکه بحث در مورد بعضی از موضوعات بسیار زیاد میشد و تاپیک تبدیل به اسپم بسیار زیادی از جواب ها و نقطعه نظر غیر مرتبط تشکیل میشد . الان با این قابلیت دیگه این انتفاق نخواد افتاد . پاینده باشید
  25. 2 likes
    خیلی ممنون از نظر خوبتون. حتما در روزهای آینده خیلی امکانات جدیدی را به انجمن اضافه میکنیم.
  26. 2 likes
    خوبه خوشم اومد قالب جالبیه و خوشحال شدم وااااقعا که انجمن یکم عوض شد قیافه ش خخخخ فقط این شکلکارو هم عوض کنید از این متحرکا بذارید
  27. 2 likes

    نگارش 1.0.0

    118 دانلود

    ایا به سورس اپلیکیشن اندرویدی نیاز دارید که بتوانید یک Music Player قوی پخش فایل های صوتی را داشته باشید،با این پروژه اندرویدی میتوانید اینکار را انجام دهید. ویژگی های این پروژه اندرویدی : پخش فایل صوتی از طریق حافظه داخلی استریم فایل ها صوتی از طریق اینترنت پخش فایل های صوتی با فرمت های MP3, AMR, AAC, PCM WAV, OGG, MP4a, 3GP

    رایگان

  28. 2 likes
    [align=center]به نام خدایی که غم از دست دادنشو ندارم [/align] [align=center]جلسه اول قرار داده شد(زیر همین پست هستش)[/align] [align=center]جلسه دوم ساخته شد(اینجا کلیک-یا تو تاپیک بگردید)[/align] [align=center]جلسه سوم ساخته شد(اینجا کلیک کنید)[/align] [align=right]بالاخره تصمیم گرفتم یه کار مفیدی واسه کاربران این سایت انجام بدم.کاری که مطمئنا به دردتون میخوره.آموزش ساخت کتاب اندرویدی. [/align] [align=right]هر وقت میام سایت،میبینم افرادی زیادی میخوان که برنامه های کتاب مانند بسازن.این کار رو میخوام به آسون ترین شکل بهتون یاد بدم.این رو هم بگم من خودم یه اماتورم زیاد از من انتظار حرفه بودن نداشته باشید [/align] [align=right]خب.بریم سر اصل مطلب [/align] [align=right]اول این که آموزش ها ویدئویی هستن.یعنی به صورت فیلم که این کار هم واسه شما آسونه هم من.(حوصله نوشتن ندارم).واسه شما خوبه چون راحت تر می فهمید. [/align] [align=right]این آموزش شاید 5-6 تا بشه که هر کدوم رو تو یه پست جدا و همچنین هر کدوم رو همراه با سورس کدش تا اون قسمت + برنامه های گفته شده+ کد های خاص تو یه فایل قرار میدم.:D[/align] [align=right].[/align] [align=right].[/align] [align=right]از همین الان بگم که سعی میکنم هر روزحداقل یه آموزش بذارم که تو یه هفته ای تموم شه.[/align] [align=right]دوما اینکه آموزش ما خیلی گرافیکی نیست.یعنی برنامه خیلی خوشگل نمیشه.ما چارچوبو یاد میدیم.شرمنده[/align] [align=right].[/align] [align=right].[/align] [align=right]پیشنیاز ها رو هم میگم:[/align] [align=right]1-نرم افزار اکلیپس آماده + چیز های مورد نیازش.(یعنی بشه باهاش همین الان یه اپ ساخت)[/align] [align=right]2-بلد بودن شما به مفاهیم اولیه برنامه نویسی اندروید(مثلا بتونید به برنامه بسازید از این صفحه به اون صفحه بره و اینجو صحبتا)[/align] [align=right]3-یه چیزایی از دیتابیس بدونید بد نیست.با این که کار ما خیلی مربوطه به دیتابیس هست،اما خودم کامل توضیح نمدم در حد همون کتاب میگم.[/align] [align=right]4-پشتکار و دنبال کردن آموزش ها.[/align] [align=right].[/align] [align=right].[/align] [align=right]سوالم داشتید همین تاپیک بپرسید.[/align] [align=right]از فردا اولین آموزش رو میذارم.(اولیش ساخت دیتابیس خارجی هست.)[/align] [align=center]به نام خدایی که غم از دست دادنشو ندارم[/align] [align=right]با اولین جلسه خدمت شما هستم.در این جلسه می آموزید چگونه دیتابیس نرم افزار خود را طراحی کنید.توسط نرم افزار SQLite expert professional[/align] [align=right].[/align] [align=right].[/align] [align=right]حجم فایل:12 مگ[/align] [align=right]محتویات:فیلم آموزش+دیتابیس 4 رکوردی خودمون[/align] [align=right]لینک دانلود...[/align] [align=right]*****************[/align] [align=right]نرم افزار SQlite expert جهت ساخت فایل دیتابیس[/align] [align=right]حجم:75 مگ[/align] [align=right]لینک دانلود...[/align] [align=right]پسورد فایل: soft98.ir[/align]
  29. 2 likes
    بیشتر افراد دارای سیم کارت های اعتباری هستند و هر چند وقت یکبار میخواهند بدانند که مانده حساب چقدر میباشد. خب در اندروید اینکار به سادگی قابل انجام بوده، در این آموزش قصد داریم امکانات زیر را پیاده سازی کنیم 1-دریافت مانده شارژ 2-شارژ سیم کارت 3-شارژ شگفت انگیز 4-تنظیمات اینترنت GPRS ما فرض را بر سیم کارت های ایرانسل قرار میدهیم، برای سایر اپراتورها فقط کد مربوطه را قرار میدهیم: [align=left] phNumber = "*141*111-333-222-4#";String uri = "tel:" + phNumber ;Intent intent = new Intent(Intent.ACTION_CALL);intent.setData(Uri.parse(uri));startActivity(intent); [/align] سپس در فایل مانیفست این مجوزها را فعال میکنیم: [align=left] [/align] رویداد فوق را میتوانید در کلیک ویجت Button قرار دهید . بهتر است در دیوایس واقعی تست شود تا خروجی دقیقا مشاهده شود.
  30. 2 likes
    لطفا به سوال های زیر جواب بدید تا من قیمت خودم رو بهتون بگم : 1.ظاهر برنامه شما چگونه باشد؟ الف) معمولی ب) اختصاصی ج) طرح های موجود در بازار د)نمی دونم 2- آیا برنامه شما سیستم عضویت و ورود کاربران دارد؟ الف) بله ، سیستم عضویت و ورود اختصاصی ب)بله ، استفاده از سایت های اجتماعی ج)نمی دونم د)خیر 3 - آیا برنامه شما نیاز به سیستم پرداخت اینترنتی دارد؟ الف) بله یک درگاه اینترنتی ب)بله چند درگاه اینترنتی ج)نمی دونم د)خیر 4- آبا برنامه شما نیاز به همگامسازی دارد؟ الف)بله ب)خیر ج) نمی دونم 5-آیا برنامه شما سیستم نظرسنجی یا رای گیری دارد؟ الف)بله ب)خیر ج) نمی دونم 6- آیا کاربران شما پروفایل شخصی در برنامه دارند؟ الف)بله ب)خیر ج) نمی دونم 7-آیا به همراه برنامه نیاز به وب سایت هم دارید؟ الف)بله ب)خیر ج) نمی دونم 8-آیا نیاز به طراحی لوگو و آیکون اختصاصی دارید؟ الف)بله ب)خیر ج) نمی دونم
  31. 2 likes
    فک کنم با خودتون مشکل دارید اصلا مگه بنده قیمت گفتم!! انتظار داری همینطور علیک سلام پروژه رو بدیم بهتون ! البته واقعا دست مدیر انجمن درد نکنه که یه انجمن خوب داره تا بهترین رو انتخاب کنیم
  32. 2 likes
    سلام این مشکل نیست اکلیپس به شما راه اصولی نوشتن متن رو میگه مثلا : android:text="Medium Text" روش صحیح نوشتن کد بالا android:text="@strings/Medium Text" که شما در string مقدار متنون رو معیین کردید
  33. 2 likes
    [align=center]به نام خدایی که غم از دست دادنشو ندارم [/align] [align=right]با سلام خدمت دوستان گرامی.قسمت دوم هم ساختم.در این قسمت آموزش این هست که کلاس دیتابیسمون رو بسازیم.البته کد خیلی طولانی داره واسه همین اون کد هم قرارش دادم واستون.در این جلسه بعد از ساخت کلاس ابتدا فایل دیتابیسمون رو کپی میکنیم درون پروژه بعدش داخل گوشی انتقال میدیم به جای مخصوص بعدش هم تست میکنیم کپی شده یا نه!بعدشم یه تست میگیزیم ببینیم درست هست یا نه.[/align] [align=right]_____________[/align] [align=right]حجم فایل:30 مگابایت[/align] [align=right]محتویات:فیلم آموزش+پروژه تا اینجا+سورس کلاس دیتابیس در یک فایل txt[/align] [align=right]لینک دانلود....[/align] [align=right]_____________[/align] [align=right]نرم افزار Root Explorer[/align] [align=right]حجم فایل:2.5 مگ[/align] [align=right]نسخه:3.3.5 با پشتیبانی زبانی پارسی[/align] [align=right]لینک دانلود....[/align]
  34. 2 likes
    در این اموزش میخواهیم انیمیشنی برای دکمه قرار دهیم ابتدا دکمه ای در صفحه قرار داده.فایل xml به نام animation.xml با Resource type=Tween Animation و Root Element=Scale ایجاد میکنیم. کد زیر را در فایل ایجاد شده تایپ میکنیم. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:fromXScale="0.1" android:toXScale="2.0" android:fromYScale="0.1" android:toYScale="2.0" android:pivotX="50%" android:pivotY="50%" android:duration="3000" > android:fromDegrees="0" android:toDegrees="180" android:pivotX="50%" android:pivotY="50%" android:duration="3000" android:startOffset="1500" > [/shcode] خصوصیت های Scale fromXScale و fromYScale: کنترل از چه اندازه ای در جهت محورX یا Yبزرگ شود toXScale و toYScale :کنترل تا چه اندازه ای در جهت محور X یا Y بزرگ شود. pivotX و pivotY : نقطه مبدا محور X و Y duration : زمان انیمیشن بر حسب میلی ثانیه در صورتی که بخواهیم از چند افکت استفاده کنیم از تگ set استفاده میکنیم. خصوصیت های Rotate fromDegrees :از چه درجه ای شروع به چرخش نماید toDegrees : تا چه درجه ای چرخش نماید startOffset: زمانی که پیش از اجرای انیمیشن لازم است با تمام شدن کار، به فایل MainActivity.java رفته و کد زیر را در ان تایپ میکنیم. [shcode=java]final Button b=(Button) findViewById(R.id.button1); b.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Animation anim=AnimationUtils.loadAnimation(MainActivity.this, R.anim.animation); b.startAnimation(anim); } });[/shcode] با اجرای برنامه و کلیک روی دکمه، تنظیماتی که برای انیمیشن قرار داده اید را مشاهده میکنید.
  35. 2 likes
    [align=center] [/align] [align=center]درسته این کد همگانی شده همه بدلن ولی میزارم واسه آرشیو شدن کار با دگمه های فیزیکی افزایش/کاهش صدا[/align] [align=center] @Override public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode(); if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){ if (event.getAction() == KeyEvent.ACTION_UP){ // Dohme Afzayeshe Seda } return true; }else if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){ if (event.getAction() == KeyEvent.ACTION_UP){ //Dogme Kaheshe Sheda } return true; } return super.dispatchKeyEvent(event); }[/align] [align=center]اینم تشخیص جهت لمس public class activity extends Activity implements SimpleGestureListener { private logskey detector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean dispatchTouchEvent(MotionEvent me) { // Call onTouchEvent of SimpleGestureFilter class this.detector.onTouchEvent(me); return super.dispatchTouchEvent(me); } @Override public void onSwipe(int direction) { switch (direction) { case logskey.SWIPE_RIGHT: // Harakat be samte rast break; case logskey.SWIPE_LEFT: // Harakat be samte chap break; case logskey.SWIPE_DOWN: // Harakat be samte pain break; case logskey.SWIPE_UP: // Harakat be samte bala break; } } @Override public void onDoubleTap() { // Duble Click } } [/align] [align=center]این هم کد فهمیدن اینکه دستگاه تبلت هستش یا ...[/align] [align=center] public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE; } [/align] [align=center]این هم کد ارسال شماره تلفن به شمار گیر Dialer[/align] [align=center] public void dial(String num){ Intent callIntent = new Intent(Intent.ACTION_DIAL); callIntent.setData(Uri.parse("tel:" + Uri.encode(num.trim().toString()))); callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(callIntent); } استفاده از کد : dial("09215799615"); [/align] [align=center]این هم کد قرار دادن آهنگ مورد نظر به عنوان رینگتون[/align] [align=center] File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtone ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, "My Song title"); values.put(MediaStore.MediaColumns.SIZE, 215454); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); values.put(MediaStore.Audio.Media.ARTIST, "Madonna"); values.put(MediaStore.Audio.Media.DURATION, 230); values.put(MediaStore.Audio.Media.IS_RINGTONE, true); values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false); values.put(MediaStore.Audio.Media.IS_ALARM, false); values.put(MediaStore.Audio.Media.IS_MUSIC, false); //Insert it into the database Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath()); Uri newUri = main.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri( myActivity, RingtoneManager.TYPE_RINGTONE, newUri ); لطفا تست کنید[/align] [align=center]اگه بخوای از یه پوشه مثلا از raw فراخوانی کنی میتونی این کد رو در یه دکمه قرار بدی و براحتی موزیک مورد نظرت رو بعنوان زنگ موبایل قرار بدی :[/align] [align=center] byte[] buffer = null; InputStream fIn = getBaseContext().getResources().openRawResource( R.raw.zang1); int size = 0; try { size = fIn.available(); buffer = new byte[size]; fIn.read(buffer); fIn.close(); } catch (IOException e) { return false; } String path = Environment.getExternalStorageDirectory().getPath() + "/media/audio/ringtones/"; String filename = "zang1.mp3"; boolean exists = (new File(path)).exists(); if (!exists) { new File(path).mkdirs(); } FileOutputStream save; try { save = new FileOutputStream(path + filename); save.write(buffer); save.flush(); save.close(); } catch (FileNotFoundException e) { return false; } catch (IOException e) { return false; } sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path + filename))); File k = new File(path, filename); ContentValues values = new ContentValues(); values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath()); values.put(MediaStore.MediaColumns.TITLE, filename); values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3"); // This method allows to change Notification and Alarm tone also. Just // pass corresponding type as parameter if (RingtoneManager.TYPE_RINGTONE == type) { values.put(MediaStore.Audio.Media.IS_RINGTONE, true); } else if (RingtoneManager.TYPE_NOTIFICATION == type) { values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true); } else if (RingtoneManager.TYPE_ALARM == type) { values.put(MediaStore.Audio.Media.IS_ALARM, true); } Uri uri = MediaStore.Audio.Media.getContentUriForPath(k .getAbsolutePath()); Uri newUri = Zang.this.getContentResolver().insert(uri, values); RingtoneManager.setActualDefaultRingtoneUri(Zang.this, type, newUri); // Insert it into the database this.getContentResolver() .insert(MediaStore.Audio.Media.getContentUriForPath(k .getAbsolutePath()), values); return true; [/align] [align=center]این هم کد باز شدن تنظیمات wireless startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); این هم کد باز شدن انتخاب شبکه wireless برای اتصال به اون startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK)); [/align] [align=center]امیدوارم استفاده کنید[/align] [align=center]این کدها هر روز آپدیت میشن و کدهای جدیدتری بهشون اضافه میشه[/align] [align=center]ناموسن این همه کد میذارم ارزش یه اعتبار دادنو ندارم؟؟؟؟؟؟؟ [/align] [align=center]مرسی بروبچ [/align] [align=center]P30DROID[/align]
  36. 1 like
    اینکار امکان پذیر نیست و نمیتونید داخل پکیج خروجی اندروید فایلی قرار دهید
  37. 1 like
    حتما این سوال برای شما پیش آمده است از کجا متوجه بشویم که یک شماره تلفن خاص دارای چه نرم افزار شبکه های اجتماعی میباشد، در این آموزش قصد دارید این مورد را بطور کامل بررسی نماییم. کلاس AccountManager در اندروید اینکار را برای ما انجام میدهد بدین صورت که لیست تمامی اکانت های حساب کاربری دستگاه اندرویدی را در اختیار شما قرار میدهد AccountManager am = AccountManager.get(this); Account[] accounts = am.getAccounts(); for (Account ac : accounts) { String acname = ac.name; String actype = ac.type; // Take your time to look at all available accounts System.out.println("Accounts : " + acname + ", " + actype); } نحوه بررسی کردن که چه اپلیکیشنی را نصب کرده است بطور مثال : اپلیکیشن WhatsApp : if(actype.equals("com.whatsapp")){ String phoneNumber = ac.name; } با استفاده از PackageName هر اپلیکیشنی میتوانید این موارد را بررسی کنید مجوز : برای اینکه بتوانید این امکان را پیاده سازی کنید میبایستی مجوز لازم را در AndroidManifest قرار دهید <uses-permission android:name="android.permission.GET_ACCOUNTS" /> با سپاس فرزاد سرسیفی
  38. 1 like
    ممنون استاد عزیز از اینکه وقت گذاشتید و پاسخ دادید ببینید من درست متوجه شدم !!! ابتدا بیام استایل اکشن بار رو بگذارم روی noaction تا فضای بالای اکتیویتی خالی بشه و سپس کدی رو که فرمودید در فایل xml اکتیویتی اصلی قرار بدم درسته ؟؟؟ حالا اون رو میتونم با توجه به سلیقه خودم تغییر بدم ... اگر نیاز به توضیح مجددی داره ممنون میشم راهنمایی بفرمائید متشکرم
  39. 1 like
    این برای sdk پروژه ای بوده که در تنظیمات اندروید استودیوی اون یک آدرس برای sdk ست شده بود. اینجا بهت میگه که ادرس sdk شما با SDk این پروژه یکی نیس. و اونو تغییر میده به ادرس sdk جاری که روی اندروید استودیو ست شده است
  40. 1 like
    سلام.کدتون یه مشکلی که داره اینه.شما نباید که بیاید هر دو تا عکستون رو توی onBindViewHolder قرار بدید. لطفا کل کلاس اداپترتون که از RecyclerView ارث بری شده است رو بزارید براتون درست کنید نمونه تغییرات : public void onBindViewHolder(ViewHolder holder, int position) { Database database=new Database(context); //from database holder.txt_countryname.setText(items.get(position).getCountry_Name()); //holder.img_flags.setImageBitmap(database.getBitmapFromAsset(context,items.get(position).getFlag())); holder.img_flags.setImageBitmap(database.getBitmapFromAsset(context,items.get(position).getFlag));
  41. 1 like
    https://cafebazaar.ir/app/ir.aryaapp.resumesmaker/?l=fa وقتی دنبال کار باشین ، یکی از دغدغه های اصلیتون که باهاش دست و پنجه نرم می کنین نوشتن رزومه ی کاریتونه .. اینکه یه قانون ثابتی وجود نداره و تقریبن رزومه ها سلیقه ای نوشته میشن .. گاهی وقتا چندین صفحه و گاهی وقتا تا نصف صفحه هم نمیشن .. خب معمولن رزومه ی نرمال ، رزومه ایه که تمامیه اطلاعات بصورت جامع و نسبتن کامل توی یک تک برگ نوشته شده باشن ، کارفرما نه حوصله داره و نه وقت زیادی که بشینه چندین صفحه از فعالیت ها و رزومه ی شما رو مطالعه کنه ، چرا که تنها شما متقاضی برای کار نیستین ، پس رزومه ای مفید خواهد بود که در کمترین مقدار بیشترین کارایی رو داشته باشه .. نرم افزار رزومه ساز تلاش کرده بهترین رزومه رو توی تنها یک صفحه و بصورت کاملن شیک و تمیز ، تنها با پرکردن چند فیلد ، برای شما بسازه .. با ما همراه باشین و سالی سراسر پر کار برای خودتون بسازین .. https://cafebazaar.ir/app/ir.aryaapp.resumesmaker/?l=fa
  42. 1 like
    به مناسبت دومین سالگرد انجمن برنامه نویسی اندروید پی سی دروید،آموزش گام به گام برنامه نویسی اندروید از پایه را آماده کرده ایم امید است بتوانیم سهمی کوچک در پیشرفت تمامی کاربران گرامی انجمن پی سی دروید را داشته باشیم. این فایل آموزشی در 80 صفحه و پنج فصل تدوین شده است سرفصل ها: معماری و ساختار سیستم عامل اندروید آموزش زبان جاوا Layout در اندروید آموزش کاربردی برنامه نویسی اندروید مارکتینگ اندروید لینک دانلود: http://p30droid.com/Uploader/do.php?id=528 با احترام فرزاد سرسیفی مدیر انجمن برنامه نویسی اندروید p30droid.com
  43. 1 like
    اگر میخواید تازه شروع کنید بهتر است با اندروید استدیو اندروید رو یاد بگیرید تا اکلیپس ! نحوه ایمپورت کردن کتابخانه در اکلیپس: مسیر کتابخونه ذکرشده در sdk\extras\android\support\v7\appcompat http://www.appance.com/add-appcompat-v21-material/
  44. 1 like
    سلام Linkify.addLinks(textview, Linkify.WEB_URLS);
  45. 1 like
    با سلام ببین تصویر زیر رو ببین : [align=center][/align] مرحله یک ( که همون سوال یک شما میشه ) در تصویر بالا بازه و باقی مراحل قفل هستند که کاربر وقتی روشون کلیک می کنید چنین خطایی میبینه : [align=center][/align] طبق گفته هاتون چنین چیزی نیاز دارید. خب برای این کار شما یک راه حل ساده وجود داره اونم بدین شکل هستش. ابتدا یک کلاس با فیلد های زیر تهیه کنید مثل کلاس زیر : [shcode=java] public class Question { private String question; private boolean solved; public Question(String question,boolean solved){ this.question = question; this.solved= solved; } public String getQuestion() { return question; } public void setQuestion(String question) { this.question= question; } public String isSolved() { return solved; } public void setQuestion(String solved) { this.solved= solved; } } [/shcode] خب حالا شما یک لیست درست میکنی که 10 تا سوال رو میگیره ، یا 100 یا 1000 یا 1000000 فرقی دیگه نداره. هرچقدر دوست داری بهش سوال بده فرضا اینطوری : [shcode=java] List myQuestions=new ArrayList(); myQuestions.add(new Question("سوال یک",false)); myQuestions.add(new Question("سوال دو",false)); myQuestions.add(new Question("سوال سه",false)); myQuestions.add(new Question("سوال چهار",false)); myQuestions.add(new Question("سوال پنج",false)); myQuestions.add(new Question("سوال شش",false)); // هرچقدر میخوای بهش سوال بده // حتی اگه دوست داری سوالاتتو از دیتابیس بخون [/shcode] خب حالا میرسیم به مهمترین بخش برنامه که یک لیست هستش که سوالاتت رو نشون بده. پیشنهاد میکنم از یک adapter استفاده کنی بدین شکل : [shcode=java] public class QuestionAdapter extends BaseAdapter { private Activity context; private List questions; public FileAdapter(Activity context, List questions) { this.context = context; this.questions = questions; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater mInflater = (LayoutInflater) _activity.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); convertView = mInflater.inflate(R.layout.row_question, null); } final Question question = questions.get(position); Button button = (Button)convertView.findViewById(R.id.btn_question); if(position==0||questions.get(position-1)).isSolved(){ // یعنی سوال قبلی رو جواب داده و میتونه به سوال بعدی بره. اینجا سوال جدید رو براش باز میکنه }else{ // یعنی سوال رو جواب نداده } // position==0 یعنی چی // برای این از این شرط استفاده کردم چون به هر حال سوال اول همیشه باز هستش و کاربر میتونه از سوال اولش روع بکنه دقیقا مثل تصویر اول return convertView; } } [/shcode] خب حالا طبق کدهای بالا شما به راحتی میتونید متوجه بشید کدوم سوال رو جواب داده یا کدوم سوال باید قفل باشه. حالا چطوری بهش بگم مثلا به سوالات پاسخ داده. برای این کار کافیه یک متد بنویسی تو اداپتر بدین شکل : [shcode=java] public void setSolved(int position){ questions.get(position).setSolved(); } [/shcode] هر موقع که از layout سوالا یا اکتیویتی نمایش سوالا برگشتی مشخصه کاربر به سوال جواب داده یا نه. شما هم طبق کدی که نوشتم براتون میدونید کدوم سوال رو باز کرده. کافیه متد رو از adapter فرا بخونید و مقدار position رو به setSolved بدید تا به صورت خودکار به اون سوال جواب بده و مقدارش رو true بکنه و برای اینکه لیستتون هم رفرش بشه کافیه متد notifyDataSetChanged() اداپتر رو صدا بزنید تا لیست به صورت خودکار رفرش بشه. توجه : هیچ کدوم از کدها تست نشده و فقط نوشتمشون تا روند کار دستت بیاد. امیدوارم متوجه شده باشید.
  46. 1 like
    یه بک اسلش اول آدرس می خواد [shcode=java] public final String path = "/data/data/ir.tahaquran.KababKofteKoko/databases/"; [/shcode]
  47. 1 like
  48. 1 like
  49. 1 like
    خب آنچنان که قول داده بودیم در شب نوروز هدایای نوروزی را منتشر کنیم،امشب به مناسبت این شب عزیز هدیه دوم خود را به عنوان پروژه مدیریت SMS Manager منتشر میکنیم امکانات پروژه: -ویجت Satellite Menu همراه با Library -ارسال اس ام اس -انتخاب کاربران از لیست Contatcs دریافت اس ام اس صندوق ارسالی ها فقط یه نکته :لطفا برای ظاهر بهتر تصاویر خود را جایگزین نماید.. لینک دانلود : http://wdl.persiangig.com/pages/download/?dl=http://srfarzad.persiangig.com/Android/SmsManage-p30droid.zip انجمن پی سی دروید
  50. 1 like
    سپاس از پاسخ گویی سریع شما پس مثلا در تبلت های 10 اینچی محتوای layout-xlarge رانمایش می دهد و در 7 اینچی ها layout-large را نمایش می دهد؟