جستجو در انجمن

در حال نمایش نتایج برای برچسب های 'برنامه نویسی اندروید'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


انجمن ها

  • انجمن اندروید ایران
    • اخبار و اعلانات
    • صندوق پيشنهادات و انتقادات
    • تازه‌های دنیای کامپیوتر و فناوری
    • قوانین انجمن تخصصی اندروید ایران
  • اندروید
    • ابزار های برنامه نویسی اندروید
    • شروع با اندروید
    • رفع مشکلات و سوالات
    • پروژه های اندروید
  • اندروید 5
    • آموزش اندروید 5
    • رفع مشکلات و سوالات اندروید 5
  • مباحث مرتبط با اندروید
    • ابزارها و سایتهای مفید
    • گرافیک موبایل
    • آموزش های ویدئویی
    • برنامه نویسی جاوا
  • تکنولوژی های اندروید
    • توسعه اندروید با #C
    • توسعه اندروید با Basic4Android
    • وب موبایل
  • متفرقه
    • اپلیکیش های ایرانی
    • برنامه نویسی
    • درخواست همکاری
    • مباحث متفرقه
    • مهارتهای فروش و بازاریابی
  • پشتیبانی محصولات مارکت
    • پرسش و پاسخ مرتبط با مارکت انجمن اندروید ایران
    • پشتیبانی مارکت پروژه های اندروید
    • پشتیبانی مارکت آموزش اندروید
    • پشتیبانی مارکت گرافیک موبایل

دسته ها

  • پروژه اندروید
    • سورس پروژه اندروید
    • کامپوننت های اندروید
    • کتابخانه های اندروید
  • آموزش اندروید
    • فیلم آموزشی کاربردی
    • مقالات آموزشی اندروید
  • گرافیک موبایل
    • قالب طراحی اپلیکیشن

تقویم ها

  • Community Calendar

81 نتیجه پیدا شد

  1. سلام. لطفااگه کسی درمورد نوشتن رسیور (BroadcastReceiver) برای فشار دادن دکمه پاور میدونه قرار بده. ممنون
  2. نگارش 1.0.0

    286 دانلود

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

    رایگان

  3. سورس پروژه اندروید Memory

    نگارش 1.0.0

    37 دانلود

    سورس پروژه اندروید Memory که بطور رایگان برای کاربران شاپ دروید قرار گرفته است.این پروژه بدین صورت عمل میکند که لیستی از تصاویر نمایش داده میشود و کاربر میبایستی ابتدا آنها را بخاطر بسپارد و بعد بازی شروع میشود. بعد اینکه بازی شروع شد باید چیکار کنیم؟ تصاویر در زیر دکمه ها مخفی میشوند و کاربر باید تصاویر را تشخیص داده تا بتوانند بازی را به اتمام برساند.

    رایگان

  4. سلام دوستان یه سوال داشتم من میخوام یه نرم افزار کتابخوان یا کتابخ ونه درست کنم به این صورت که : کاربر کتاب مورد نظرش رو انتخاب میکنه ، هزینش رو پرداخت میکنه ، کتاب رو توی خود نرم افزار دریافت میکنه ،(دانلود نمیشه) میخوام توی خود نرم افزار باشه که به عبارتی هرکسی کتاب رو بخره حالا سوالم اینجاست که در این صورت اون حجم کتاب دانلود میشه ؟ یا میشه کاری کرد که کتاب به سرعت باز بشه یعنی روی سرور باز بشه و کاربر فقط مشاهده کنه حالا امکان داره که از یه کتاب خاص 1000 نفر انلاین مشاهده کنن باید چکار کنم ممنون میشم راهنمایی کنین
  5. سلام به دوستان عزیز. بعد از 2 ماهی میشه اومدم به p30DROID و خب خداییش کمی متحیر شدم . تبریک میگم که قالب جدید سایت فراهم شده تا کاربران راحت تر کار کنن . واقعا بهتر از قبله اما باز هم جای کار داره . امیدوارم روز به روز پیشرفت کنید .
  6. سلام برای برنامه نویسی اندروید با اندروید استودیو چه پکیجی خوبه؟ً سون لرن؟ uncox ؟ و یا ؟ً! کسی تجربه داشته از این پکیج ها؟ کسی دیده و چیزی یاد گرفته؟! ممنون میشم راهنماییم کنید. مرسی اگه اینو ببینم میتونم چیزی یاد بگیرم!؟ دانشجویار کسی اینو دیده!؟
  7. سلام دوستانیه سورس و یا یک فیلم آموزشی یا هرچیزی، برای دسترسی به دوربین جهت فیلمبرداری اگه سراغ دارید معرفی کنید یا اگه میشه خودتون توضیح بدید.من اینترنت جستجو کردن ولی فقط برای عکس گرفتن آموزش پیدا میشه، ولی من میخوام باهاش فیلم بگیرم.باتشکر
  8. سورس پروژه اندروید Music Player

    نگارش 1.0.0

    48 دانلود

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

    رایگان

  9. سورس اپلیکیشن اندروید ChatApp

    نگارش 1.0.0

    101 دانلود

    سورس اپلیکیشن 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

    رایگان

  10. ساخت لیست سفارشی در اندروید در این تاپیک به مبحث ساخت لیست سفارشی در اندروید پرداخته میشود که در هر اپلیکیشن اندروید حتما باید با این امکان برخورد کرده اید.مثلا دیده اید که در یک سطر تعدادی زیاد اطلاعات به شکلی منظم کنار هم قرار گرفته انند مانند تصویر نمونه زیر : http://p30droid.com/Uploader/do.php?img=30[/img] قبل از اینکه مبحث لیست ویو سفارشی را شروع کنیم، اگر تا الان با ساخت لیست ویو آشنا ندارید، ابتدا مقاله اول ساخت لیست ویو را مطالعه نمایید تا آشنایی کلی در این رابطه را داشته باشید.برای اینکه بتوانیم یک لیست سفارشی را بسازیم ابتدا یک پروژه جدید اندروید را ایجاد میکنیم . عنوان پروژه: در این مثال قصد داریم کاربر اطلاعاتی مانند نام و نام خانوادگی و کد را وارد نماید سپس در هر سطر لیست این اطلاعات لیست شده برای کاربران نمایش داده شود. 1-ابتدا یک کلاس برای تعریف دیتایس و ایجاد جدول مربوطه با سه فیلد را ایجاد میکنیم.اگر به مبحث دیتابیس در اندروید آشنایی ندارید لطفا مقاله اول و دوم در رابطه با دیتابیس در اندروید را مطالعه نمایید. [shcode=java] import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE = "DATABASE_listview.db"; public static final String tbl_data = "tbl_data"; public static String id = "ID"; public static String name = "name"; public static String family = "family"; // method to create or connect to a database public DatabaseHelper(Context context) { super(context, DATABASE, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + tbl_data + " (" + id + " TEXT ," + name + " TEXT," + family + " TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + tbl_data); onCreate(db); } public void AddRowtable(String id, String name, String family) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues data = new ContentValues(); data.put("ID", id); data.put("name", name); data.put("family", family); db.insert(tbl_data, null, data); } } [/shcode] در این کلاس که کدهای آن را مشاهده میکنید یک تابع نیز به نام AddRowtable وجود دارد که برای وارد کردن اطلاعات در دیتابیس مورد استفاده میشود. 2- سپس در اکتیویتی اصلی برنامه یک لیست ویو قرار گرفته است برای نمایش اطلاعات موجود ، که از یک لیست سفارشی استفاده شده است. فایل activity_main.xml که در مسیر res/layout میباشد را باز نمایید. [shcode=xml] xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" > [/shcode] 3-اکتیویتی MainActivity را باز کنید: در این اکتیویتی آن چنان که در xml ان مشاهده نموید،فقط یک لیست ویو قرار دارد، پس ابتدا آن را تعریف میکنیم و در مرحله آخر اطلاعات موجود در دیتابیس در آن قرار میگیرد.در این کلاس یک تابع به اسم FillData تعریف شده که اطلاعات موجود در جدول را میخواند و در Hashmap قرار میدهد. شرح : از خط 18 تا 21 ویجت ها و کلاس ها تعریف شده اند. خط 26: لیست ویو تعریف شده است. خط 27 : یک شی جدید از کلاس دیتابیس با Context کلاس جاری را ایجاد کردیم. خط 36 : FillData برای این در onResume فراخوانی شده است که چون قرار است به اکتیویتی افزودن برویم و بعد دوباره back میزنیم تا اطلاعات بروز رسانی شود. خط 45 : یک Cusrsor تعریف شده تا شرط مورد نظر که انتخاب همه اطلاعات است را اجرا کند خط 52 : یک حلقه تعریف شده، به اندازه تعداد رکورد های پیدا شده از شرط اجرا میشود خط 54 : cursor یک رکورد به جلو میرود: چون cursor از صفر شروع میشود برای اینکه برنامه اخطار ندهد یه خانه به جلو میرویم خط 55 : یک Hashmap را تعریف میکنیم تا اطلاعات فیلدها را در آن بطور موقت ذخیره کنیم. خطوط56 تا 58 : این خطوط اطلاعات پیدا شده از شرط که در cursor قرار دارند را ذخیره میکنند. خطوط 60 تا 62 : این خطوط نیز اطلاعات موجود در متغیرهای بالا در خود ذخیره میکنند و هر فیلد دارای اسمی خاص میباشد. خط 64: اطلاعات در شی Datalist ذخیره میشود. خط 67 : اطلاعات پیدا شده و ست شده در Datalist را به کلاس listviewAdapter میفرستد تا بصورت لیست سفارشی نمایش داده شود. 68: سرانجام اطلاعات پیدا شده در لیست ویو نمایش داده میشود. کلاس listviewAdapter : این کلاس وظیفه نمایش اطلاعات را در قالب مشخص شده را داردو خط : 56 : در این خط تعیین میکنیم که لیست ما از کدام layout باید برای نمایش استفاده کند. در این کلاس آنچنان که ملاحضه میکنید در خطوط 60 تا 64 فیلدها فایل list-row که در مسیر res/layout میباشند را تعریف میکنیم.این لایوت همان لیستی میباشد که آن را طراحی کرده ایم تا لیست مورد نیاز ما را نمایش دهد. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:orientation="horizontal" android:padding="5dip" > android:id="@+id/thumbnail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginRight="5dip" android:background="@drawable/image_bg" android:padding="3dip" > android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/thumbnail" android:layout_toRightOf="@+id/thumbnail" android:text="title" android:textColor="#040404" android:textSize="20dip" android:textStyle="bold" android:typeface="sans" /> android:id="@+id/date" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/title" android:layout_marginTop="1dip" android:layout_toRightOf="@+id/thumbnail" android:gravity="left" android:text="family" android:textColor="#FFA500" android:textSize="14dip" /> android:id="@+id/list_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@id/date" android:layout_marginRight="5dip" android:background="#E5E4E2" android:gravity="right" android:text="ID" android:textColor="#0000FF" android:textSize="12dip" android:textStyle="bold" /> [/shcode] 4-افزودن اطلاعات: برای افزودن اطلاعات ، روی دکمه منو کلیک کنید و گزینه add را انتخاب کنید ، تا وارد اکتیوتی userActivity شوید : افزودن اطلاعات : خطوط 27 تا 32 : ویجت ها را تعریف میکنند. خط 34 : وارد رویداد کلیک دکمه ثبت میشویم خط 39 این دستور،تابع موجود در کلاس دیتابیس DatabaseHelper که به اسم dbh را میباشد اجرا میشود و اطلاعات در فیلدهای موجود ذخیره میشود. دانلود مثال از آپلود سنتر انجمن پی سی دروید : http://p30droid.com/Uploader/do.php?id=36 پسورد : www.p30droid.com دانلود نسخه PDF مطلب. امیدوارم مفید واقع شود.
  11. سلام من با کمک کتابخانه https://github.com/roughike/BottomBar یک تب ساختم و با استفاده از viewpager یک اسلاید ویو ساختم چطوری این دوتا رو هماهنگ کنم مثلا با کشیدن صفحه علاوه بر تغییر ویو تب هم به تب بعدی تغییر کنه و برعکس یعنی اگر روی تب کلیک کرد ویو عوض بشه کد های main.xml [shcode=java] android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> android:id="@+id/contentContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottomBar" /> android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"/> android:id="@+id/bottomBar" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" app:bb_tabXmlResource="@xml/bottombar_tabs" /> [/shcode] کد های main.java [shcode=java] package com.sayeben.test; import android.app.Activity; import android.support.annotation.IdRes; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.roughike.bottombar.BottomBar; import com.roughike.bottombar.BottomBarTab; import com.roughike.bottombar.OnTabSelectListener; public class Main extends AppCompatActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new CustomPagerAdapter(this)); BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar); bottomBar.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelected(@IdRes int tabId) { if (tabId == R.id.bbn_item1) { } if (tabId == R.id.bbn_item1) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item2) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item3) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item4) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } } }); } } [/shcode] کد های modelobject.java [shcode=java] package com.sayeben.test; /** * Created by Mohammad on 14/11/2016. */ public enum ModelObject { RED(R.string.red, R.layout.view_red), BLUE(R.string.blue, R.layout.view_blue), GREEN(R.string.green, R.layout.view_green); private int mTitleResId; private int mLayoutResId; ModelObject(int titleResId, int layoutResId) { mTitleResId = titleResId; mLayoutResId = layoutResId; } public int getTitleResId() { return mTitleResId; } public int getLayoutResId() { return mLayoutResId; } } [/shcode] کد های custompageAdapter [shcode=java] package com.sayeben.test; /** * Created by Mohammad on 14/11/2016. */ import android.content.Context; import android.support.v4.view.PagerAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class CustomPagerAdapter extends PagerAdapter { private Context mContext; public CustomPagerAdapter(Context context) { mContext = context; } @Override public Object instantiateItem(ViewGroup collection, int position) { ModelObject modelObject = ModelObject.values()[position]; LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(modelObject.getLayoutResId(), collection, false); collection.addView(layout); return layout; } @Override public void destroyItem(ViewGroup collection, int position, Object view) { collection.removeView((View) view); } @Override public int getCount() { return ModelObject.values().length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public CharSequence getPageTitle(int position) { ModelObject customPagerEnum = ModelObject.values()[position]; return mContext.getString(customPagerEnum.getTitleResId()); } } [/shcode] و سه لایه با نام های view_blue و ... ممنون
  12. انجمن اندروید ایران با همکاری فرانش برگزار میکند: تاریخ برگزاری : 3 آبان 1395 مدرس : فرزاد سرسیفی مکان: مصلی تهرانی،غرفه فرانش عنوان درسی : امنیت در اندروید "شرکت برای عموم رایگان میباشد" با سپاس فراوان فرزاد سرسیفی
  13. به مناسبت دومین سالگرد انجمن برنامه نویسی اندروید پی سی دروید،آموزش گام به گام برنامه نویسی اندروید از پایه را آماده کرده ایم امید است بتوانیم سهمی کوچک در پیشرفت تمامی کاربران گرامی انجمن پی سی دروید را داشته باشیم. این فایل آموزشی در 80 صفحه و پنج فصل تدوین شده است سرفصل ها: معماری و ساختار سیستم عامل اندروید آموزش زبان جاوا Layout در اندروید آموزش کاربردی برنامه نویسی اندروید مارکتینگ اندروید لینک دانلود: http://p30droid.com/Uploader/do.php?id=528 با احترام فرزاد سرسیفی مدیر انجمن برنامه نویسی اندروید p30droid.com
  14. راه های زیادی برای دانلود موجود هست که در اینجا مهم ترینشون رو می نویسم و استفاده از این روش ها بستگی به شما داره که کدوم به درد برنامه شما می خوره. 1. استفاده از AsyncTask و نمایش پیشرفت در progress // declare the dialog as a member field of your activity ProgressDialog mProgressDialog; // instantiate it within the onCreate method mProgressDialog = new ProgressDialog(YourActivity.this); mProgressDialog.setMessage("A message"); mProgressDialog.setIndeterminate(true); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); // execute this when the downloader must be fired final DownloadTask downloadTask = new DownloadTask(YourActivity.this); downloadTask.execute("the url to the file you want to download"); mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { downloadTask.cancel(true); } }); private class DownloadTask extends AsyncTask { private Context context; private PowerManager.WakeLock mWakeLock; public DownloadTask(Context context) { this.context = context; } @Override protected String doInBackground(String... sUrl) { InputStream input = null; OutputStream output = null; HttpURLConnection connection = null; try { URL url = new URL(sUrl[0]); connection = (HttpURLConnection) url.openConnection(); connection.connect(); // expect HTTP 200 OK, so we don't mistakenly save error report // instead of the file if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { return "Server returned HTTP " + connection.getResponseCode() + " " + connection.getResponseMessage(); } // this will be useful to display download percentage // might be -1: server did not report the length int fileLength = connection.getContentLength(); // download the file input = connection.getInputStream(); output = new FileOutputStream("/sdcard/file_name.extension"); byte data[] = new byte[4096]; long total = 0; int count; while ((count = input.read(data)) != -1) { // allow canceling with back button if (isCancelled()) { input.close(); return null; } total += count; // publishing the progress.... if (fileLength > 0) // only if total length is known publishProgress((int) (total * 100 / fileLength)); output.write(data, 0, count); } } catch (Exception e) { return e.toString(); } finally { try { if (output != null) output.close(); if (input != null) input.close(); } catch (IOException ignored) { } if (connection != null) connection.disconnect(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); // take CPU lock to prevent CPU from going off if the user // presses the power button during download PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName()); mWakeLock.acquire(); mProgressDialog.show(); } @Override protected void onProgressUpdate(Integer... progress) { super.onProgressUpdate(progress); // if we get here, length is known, now set indeterminate to false mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog.setProgress(progress[0]); } @Override protected void onPostExecute(String result) { mWakeLock.release(); mProgressDialog.dismiss(); if (result != null) Toast.makeText(context,"Download error: "+result, Toast.LENGTH_LONG).show(); else Toast.makeText(context,"File downloaded", Toast.LENGTH_SHORT).show(); } و permission رو هم به برنامه اضافه کنید
  15. سلام برای اینکه بخواهیم از یک متغییر که در متد onCreate تعریف و مقدار دهی شده در رویدادهای onPause,onStope, onDestroy استفاده کنیم به چه صورت باید عمل کنیم ؟ چون متغییری که داخل oncreate مقدار دهی شده امکان استفاده از آن در رویدادهای دیگر نیست! لطفا راهنمایی کنید. با تشکر
  16. سلام دوستان والا بنده یه برنامه کاربردی در زمینه خودم دارم که این برنامه چیزی که خیلی رو اعصابه باید برای وصل شدن به سرورش چند بار گوشی رو شیک کرد شاید حدوده 8 الی 10 بار شیک محکم کرد که تا 100 درصد پر بشه و به سرور متصل بشه . من زیاد برنامه نویسی آندروید سر در نمیارم من کلی تحقیق کردم و با برنامه apk multi took دیکامپل کردم برنامه مورد نظر رو یه قسمتی تو پوشه res پیدا کردم به اسمه activity_shake_and_save ولی گویا بیشتر در زمینه محیط برنامه توضیح داده بود و چیزی به اسمه سنسور پیدا نکردم به نظرتون چی کار میشه کرد ممنون فایل به اسمه shake هم آپلود کردم براتون http://s5.picofile.com/file/8173821968/activity_shake_and_save.rar.html
  17. سلام دوستان میشه اسم سی دی یا استاد خوب برای آموزشی مقدماتی اندروید رو بهم بگین میخوام تهیه کنم لطفا اگه سراغ دارین آموزش خوب به زبان فارسی بهم معرفی کنین
  18. در این قسمت از آموزش برنامه نویسی اندروید میخواهیم برنامه موبایل خود را با یک واسط گرافیکی ساده ایجاد نماییم. واسط گرافیکی یا همان UI یکی از مهمترین اجزای یک نرم افزار موبایل و یا بازی موبایل می باشد. قسمت های گذشته را میتوانید از بلاگ آموزش برنامه نویسی موبایل (اندروید) قسمت دوم مطالعه کنید می خواهیم اپلیکیشنی بسازیم که با زدن یک دکمه متنی را در صفحه نمایش دهد. بخش اول که شامل ساخت UI میباشد را در این قسمت توضیح می دهیم. برای این منظور مراحل زیر را طی می کنیم: - ابتدا نرم افزار Android Studio را اجرا کرده در منوی مربوطه گزینه Start a new Android Studio Project را انتخاب می کنیم. در پنجره بعدی نوع اکتیویتی اصلی برنامه را Blank Activity انتخاب می کنیم. - پس از باز شدن پروژه در قسمت بالا سمت چپ محیط نرم افزار Android Studio صفحه روی گزینه app کلیک کرده در لیست باز شده مسیر زیر را انتخاب می کنیم. app -> res -> layout -> content_main.xml - در ابتدا روی متن Hello World برنامه پیشین کلیک کرده و delete را بزنید. - در فهرست قسمت Pallete لیست ابزارهای مختلف UI محیط برنامه نویسی اندروید موجود می باشد و می توان به راحتی با Drag & Drop در اکتیویتی اصلی برنامه از آنها برای شکل دهی به اپلیکیشن خود بهره بگیریم. - در ابتدا از منوی Pallete یک متن بزرگ (Large Text) را انتخاب میکنیم. با کلیک در صفحه نمایش متن مورد نظر در محل مورد نظر قرار می گیرد. - در مرحله بعدی گزینه Button را از لیست انتخاب کرده و روی صفحه نمایش قرار می دهیم. با دو بار کلیک روی Text و Button متن پیش فرض آن ها را می توان تغییر داد. در قسمت بعدی برنامه نویسی نرم افزار موبایل خود را توضیح خواهیم داد تا با زدن کلید فانکشنی را صدا زند مثلا متن موجود را تغییر دهد. این برنامه نویسی شامل کد نویسی به زبان Java می باشد.
  19. سلام دوستان میخواستم بدونم برا پخش ویدئو بصورت انلاین (منظورم پخش فیلم های سرور )و همچنین برا اپلود ویدئو کتابخانه ای هست که تو اندروید استودیو استفاده کنم؟
  20. سلام به همه دوستان : میخواستم بدونم چطور میشه از اکتیوتی های دیگه به آدر و position گریدویو دسترسی داشت مثلا تو همون اکتیوتی که گرید ویو هست من به صورت عمل کردم که اگر posstion ==1 بود برو به اکتیتوتیه دیگه - حالا تو اکتیوتیه های دیگه که من اطلاعاتی رو که در قسمت گرید ویو هست رو چطور میتونم برای اکتیوییتی های دیگه استفاده کنم - مثلا از همون postion 1 تو چند جا بتونم استفاده کنم - ممنون میشم اگه جواب بدبد - خیلی گیر این قضیه هستم دوستان لطفا به سوالم جواب بدید خیلی گیرم
  21. سلام یه نکته آموزشی خیلی ریز: موقعی که دارید با دیتابیس کار میکنید و بیش از یه بار کوئری میزنید به دیتابیس تون ممکنه با خطای (conn# 0) already closed مواجه بشید راه حل: یا توی کوئری های ماقبل آخر SQLdatabase رو close() نکنید ==> db.close() یا به تعداد کوئری هاتون از کلاس SQLdatabase یه آبجکت بسازید و باهاش کار کنید
  22. آموزش گام به گام اندروید - قسمت سوم راه اندازی محیط برنامه نویسی ابتدا لازم است بدانید برنامه نویسی نرم افزار های اندروید را با هر کدام از سیستم عامل های زیر می توانید شروع کنید که ممکن است این مسئله باعث خوشحالی شما شود چرا که به احتمال زیاد نیازی نخواهد بود تا سیستم عامل خود را تغییر دهید Microsoft Windows XP یا نسخه های بعد از آن. Mac OS X 10.5.8 یا نسخه های بعد از آن که از تراشه Intel استفاده می کنند. Linux همراه با کتابخانه GNU C 2.7 یا بالاتر از آن. نکته ی دوم این است که خوشبختانه تمام ابزارهای مورد نیاز برای توسعه و برنامه نویسی نرم افزار های اندروید بصورت رایگان در دسترس است و شما می توانید آن ها را از وب دریافت کنید. در زیر لیست نرم افزار هایی را که برای برنامه نویسی اندروید به آن ها نیاز است آورده شده است. Java JDK5 یا نسخه های بالاتر Android SDK Java Runtime Environment (JRE) 6 Android Studio Eclipse IDE for Java Developers (optional) Android Development Tools (ADT) Eclipse Plug-in (optional) بعضی از موارد بالا اختیاری هستند و اگر از سیستم عامل های خانواده ی windows استفاده می کنید، راه اندازی محیط برنامه نویسی برای شما آسان تر می شود چرا که نصب بیشتر آن ها لازم نخواهد بود. حال اجازه دهید به ادامه ی نحوه ی راه اندازیِ محیط مورد نیاز برای برنامه نویسی اندروید بپردازیم. ] راه اندازی کیت توسعه جاوا (JDK) شما می توانید آخرین نسخه از جاوا JDK را از سایت جاوا دانلود کنید: Java SE Downloads. و نیز توجه داشته باشید که به دلیل تحریم بودن ما، دانلود با فیلتر شکن امکان پذیر خواهد بود. سپس دستورالعمل نصب JDK را در میان فایل های دانلود شده پیدا کرده و برای نصب و راه اندازی JDK دنبال کنید. در نهایت شما باید PATH و JAVA_HOME که متغییر های محلی هستند را برای مشخص کردن مسیری که شامل java و javac است را تنظیم کنید. اگر شما در حال استفاده از Windows هستید و JDK را در مسیر C:\jdk1.6.0_15 نصب کرده اید لازم است خط های زیر را در فایل C:\autoexec.bat قرار دهید. set PATH=C:\jdk1.7.0_75\bin;%PATH% set JAVA_HOME=C:\jdk1.7.0_75 البته به جای این کار می توانید با راست کلیک کردن روی My Computer, مسیر Properties->Advanced system settings->Environment Variables را انتخاب کنید و دو متغییر PATH و JAVA_HOME را همراه با مقادیرشان بیفزایید و سرانجام روی دکمه ی OK کلیک کنید. در Linux اگر SDK در مسیر /usr/local/jdk1.6.0_15 نصب شده است و شما از C shell استفاده می کنید می توانید دو خط زیر را در فایل cshrc. قرار دهید. setenv PATH /usr/local/jdk1.7.0_75/bin:$PATH setenv JAVA_HOME /usr/local/jdk1.7.0_75 البته چنان چه از یک محیط توسعه ی یکپارچه (IDE)، مانند Eclips استفاده می کنید خود آن بصورت اتوماتیک محل جاوا را پیدا خواهد کرد. محیط های یکپارچه توسعه اندروید فن آوری های پیچیده و زیادی به منظور توسعه و برنامه نوبسی نرم افزار های اندروید وجود دارد و فن آوری هایی که برای ما آشنا هستند و ما را قادر به برنامه نویسی نرم افزار های اندروید می سازند عمدتا با استفاده از ابزارهای زیر حاصل می شوند. ما در مباحث اموزشی از Eclipse IDE استفاده کرده ایم. Android Studio Eclipse IDE
  23. سلام دوستان. من تلگرامم گویا خیلی سنگین شده، به طوری که عکس ها و فیلم هارو دانلود نمیکنه. پیغام آپدیت برام نمیده. هرچقدر هم عکس ها و فیلم هام رو خالی کردم باز همین مشکل رو دارم. ممنون میشم راهنماییم کنید. تور مالزی
  24. در این آموزش می خواهیم دانلود فایل در دیالوگ باکس با قابلیت لغو دانلود را برای شما آموزش دهیم ابتدا کد برنامه: import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; public class DownloadActivity extends Activity { /** Called when the activity is first created. */ boolean isRun = false; ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new DownloadFileFromURL().execute("http://hw14.asset.aparat.com/aparat-video/1d7288ace5ce9cc812f6cf5b99d2b8b62642090-360p__87605.mp4"); isRun = true; } private final class onCancelClick implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface arg0, int arg1) { isRun = false; } } class DownloadFileFromURL extends AsyncTask { private ProgressDialog pDialog; /** * Before starting background thread * Show Progress Bar Dialog * */ @SuppressWarnings("deprecation") @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(DownloadActivity.this); pDialog.setMessage("موسیقی مورد نظر در حال دانلود است..."); pDialog.setIndeterminate(false); pDialog.setMax(100); pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pDialog.setCancelable(false); pDialog.setButton("لغو", new onCancelClick()); pDialog.show(); } /** * Downloading file in background thread * */ @Override protected String doInBackground(String... f_url) { int count; try { URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); // getting file length int lenghtOfFile = conection.getContentLength(); // input stream to read file - with 8k buffer InputStream input = new BufferedInputStream(url.openStream(), 8192); // Output stream to write file File f = new File("sdcard/ff.mp3"); OutputStream output = new FileOutputStream(f); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... // After this onProgressUpdate will be called publishProgress("" + (int) ((total * 100) / lenghtOfFile)); // writing data to file output.write(data, 0, count); if ( !isRun) { f.delete(); break; } } // flushing output output.flush(); // closing streams output.close(); input.close(); } catch (Exception e) { Log.e("Error: ", e.getMessage()); } return null; } @Override protected void onProgressUpdate(String... progress) { pDialog.setProgress(Integer.parseInt(progress[0])); } @SuppressWarnings("deprecation") @Override protected void onPostExecute(String file_url) { pDialog.dismiss(); } } } همانطور که مشهود است از یک کلاس آسینک تسک استفاده شده برای دانلود فایل و پس از تنظیمات اولیه دیالوگ در متد onPreExecute در متد doInBackground کارهای اصلی انجام می شود. که فایل دانلود و در اس دی کارد نوشته یا ذخیره می شود اما قسمت مهم این کار متغیر isRun است که پس از هربار نوشتن چک می شود که آیا کاربر دانلود را متوقف کرده یا نه که اگر نکرده به دانلود ادامه دهد و اگر دکمه توقف توسط کاربرد زده شده دانلود را متوقف می کند. اما باید توجه داشته باشبید که پرمیشن های زیر را در فایل منیفست اضافه کنید. امیدوارم این آموزش راهنمای خوبی برای شما دوستان باشد.
  25. برای انجام پرداخت درون برنامه ای نیاز است تا یک کانکشن با مارکتی که در آن محصولات درون برنامه ای خود را به فروش گذاشته اید برقرار کنید. پس برای اینکه مطمئن شوید طرف دیگر کانکشن مارکت است نه برنامه هک پس باید نام پکیج برنامه را چک کنید تا در صورت مغایرت با نام پکیج مارکت مورد نظر شما جلوی پرداخت درون برنامه ای را بگیرید و از کاربر بخواهید ابتدا برنامه هک را از دستگاه اندرویدی خود آنیستال کند و سپس اقدام به خرید برنامه کند. قطعه کد زیر این کار را انجام می دهد.در این قطعه کد مارکت را برای مثال بازار قرار داده ایم. IInAppBillingService mService; ServiceConnection mServiceConn = new ServiceConnection() { public void onServiceDisconnected(ComponentName name) { mService = null; } public void onServiceConnected(ComponentName name, IBinder service) { if ( !"com.farsitel.bazaar".equals(name.getPackageName())) { Toast.makeText(getApplicationContext() , "ابتدا برنامه هک پرداخت درون برنامه ای را حذف و سپس اقدام به خرید کنید!", Toast.LENGTH_SHORT).show(); finish(); } else { mService = IInAppBillingService.Stub.asInterface(service); } } }; این قطعه کد در جایی قرار می گیرد که کانکشن می خواهد برقرار شود. امیدواریم این آموزش برای شما دوستان عزیز مفید واقع شود.