1
تا سالم. تا قسوت 14 اص آه صش تش اه یسی ا ذس یذ تا ضوا ستن. دس ایي جلس هش سی تش کات ه ن د جلس قثل خ ا ین داضت تا کات گفت ضذ سا ت پش ط اصلی ا ذس یذ خ دهاى اضاف ک ین. دس جلسات قثل ح اسسال ایویل چک کشدى اتصال ت ای تش ت سا یاد گشفتین. دس ایي جلس دس صفح ای ک تشای پش فایل شیک اص د ستا واى طشاحی کشد ت دین اهکاى اسسال ایویل سا دس ک اس تواس اسسال پیاهک قشاس هیذ ین. 1( چک کرن اینترنت و ارسال ایمیل وا ط س ک ت یاد داسیذ تشای تست اتصال ت ای تش ت اص کذ صیش استفاد هیک ین. ک دکو btnemail دس واى صفح پش فایل افشاد قشاس داد ضذ است. Button btnemail = (Button) findviewbyid(r.id.btnemail); btnemail.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view view) { Context mycontext = FriendLayoutActivity.this; ConnectivityManager connectmngr = (ConnectivityManager) mycontext.getsystemservice(context.connectivity_service(; NetworkInfo netinfo = connectmngr.getactivenetworkinfo (); if(netinfo == null netinfo.isavailable() == false netinfo.isconnected() == false){ Toast.makeText(getApplicationContext(),"No Internet!", Toast.LENGTH_LONG); } else{ } }); } کافی است دس else ک طاى د ذ اتصال ت ای تش ت است کذ اسسال ایویل سا قشاس د ین: 2
Intent emailintent = new Intent(Intent.ACTION_SEND); String[] emailadress = {"email@yahoo.com"}; emailintent.putextra(intent.extra_email,emailadress); emailintent.putextra(intent.extra_subject,"mysubject"); emailintent.putextra(intent.extra_text,"mytext"); emailintent.settype("message/rfc822"); startactivity(intent.createchooser(emailintent,"choose account")); ک الثت پس اص کاس تا دیتاتیس رخیش هطخصات افشاد دس قسوت آدسس ایویل آدسس اقؼی قشاس هیگیشد. الثت تشای چک کشدى اتصال ای تش ت permission صیش فشاه ش ط د: <uses-permission android:name="android.permission.access_network_state"></usespermission> تشای یادآ سی ایي تخص ت آه صش ای 11 10 سج ع ک یذ. 2( افسودن عکس تشای افض دى ػکس تشای هخاطثی ک رخیش هیک یذ هیت ا یذ اص Gallary یک ػکس ا تخاب ک یذ. تا ن پیص هیش ین تا ای کاس سا یاد تگیشین. دس اتتذا یک دکو یک ImageView تشای افض دى وایص ػکس قشاس هیذ ین: 3
اسد کذ هیط ین. تایذ کاتی سا اتتذا یاد تگیشین: Start Activity For Result ایي هتذ ها ذ StartActivity هیثاضذ. تا ایي تفا ت ک Activity ای ک آغاص هیگشدد یک تیج تشهیگشدا ذ. یض ت اکتی یتی آغاص ضذ یک ضواس تؼلق هیگیشد تا دس گام تاصگطت ت ایي صفح آى سا پیگیشی ک ین. ج ت ک تشل هقذاس تاصگطتی چ یي اکتی یتی ای اص هتذ صیش تایذ استفاد ک ین: @Override protected void onactivityresult(int requestcode, int resultcode, Intent data) { if (requestcode == resultcode) { // do something } } دس قسوت ضشط if تایذ ضواس ای ک ت اکتی یتی گام اسسال دادین سا چک ک ین. 4 تط س هثال فشض ک یذ ک چ ذ اکتی یتی دس ه اقغ هختلف قشاس است اص ایي صفح start fot result ض ذ. پس تایذ دس ایي هتذ تا چک کشدى ضواس Activity ای ک تاصگطت است تت ا ین شکذام اص آ ا سا جذاگا هذیشیت ک ین.
هتذ setimagebitmap تشای ImageView ت یک ImageView د هذل هیت اى تک گشا ذ داد. هذل ا ل ک تیطتش اص آى استفاد هیک ین استفاد اص setbackgroudresource ست. ((ImageView) findviewbyid(r.id.imageview)).setbackgroundresource(r.drawable.yourpic); دس ای جا یک imagevirew داسین. )دقت ک یذ ک تشای استفاد اص آى ت جای ام گزاسی کل و ای ک اصش تؼشیف کشدم سا داخل پشا تض گزاضتن تا س ی آى هتذی ک هیخ ا ن سا اجشا ک ن( ست. تشای ػکس صهی دادى اص هتي setbackgroundresource استفاد کشدم. س دی آى یک ػکس اص Drawable هذل د م استفاد اص هتذ صیش ست ک س دی آى اص ع کالسBitmap هی تاضذ: ((ImageView) findviewbyid(r.id.imageview)).setimagebitmap(imagebitmap); حال دس اداه تثی ین کذ ها چگ پیص هیش د. داخل هتذ onclick هشت ط ت دکو افض دى ػکس: دس اتتذا تایذ یک intent تؼشیف ک ین چ ى هجذدا دسخ استی اص سیستن ػاهل داسین. Intent photopickerintent = new Intent(Intent.ACTION_PICK); photopickerintent.settype("image/*"); startactivityforresult(photopickerintent, 1); ایي ع Intent سا گام اسسال ایویل ن آض ا ضذین. هتذی ت ام settype داسد. دس صیش ا اػی اص س دی ای ایي هتذ سا تشای ضوا آ سد ام: 5
ک image/* ت هؼ ای ا تخاب توام فشهت ػکس ا ست. پس اص آى ایي اکتی یتی سا تا دادى ضواس ای ت آى )ػذد 1( آغاص کشد این. دس ای جا دیگش کاسی ذاسین. اداه کذ ها داخل onactivityresult قشاس هیگیشد. 6
تا ساختاس ایي هتذ آض ا ضذیذ. دس ای جا ت ا تایذ کاتی سا تگ یین. ضشط ا ل تشسسی هیک ذ Activity ک دس حال حاضش تاصگطت آى سا تشسسی هیک ین کذام یک است دس ضشط د م هقذاس resultcode تشسسی ضذ است. هیت ا ذ هقذاس RESULT_OK تشای ه اقؼی ک ه فقیت آهیض ت د یا RESULT_CANCLE سا یض تگیشد. پس اص آى یک try catch داسین. تشای ا جام ػولیات صیش: دس اتتذا اص اص س دی data اص ایي هتذ ت سط getdata هقادیش داد ا سا هیخ ا ین. داخل یک Uri رخیش کشد این. خش جی آى اص ع Uri است. پس آى سا URI = Uniform Resource identifier ک کالسی است ک هیت ا ذ یک ه ثغ یا resource سا هؼشفی ک ذ. 7
دس خط تؼذ InputStream سا داسین. کالسی ک تشای دسیافت داد ا هثال گشفتي داد ای یک فایل دس جا ا) ای جا دس ا ذس یذ( کاستشد داسد. وا ط س ک هیثی یذ ضت این: InputStream inputstream = getcontentresolver().openinputstream(selectedimage); هتذ getcontentresolver چیست دس ای جا تایذ تا هفا یوی اص ا ذس یذ آض ا ض یذ. هي تشجیح هیذادم ت هشحل ای اص تذسیس تشسین ک ایي اص ل تشای ضوا قاتل ف ن تاض ذ تؼذ آ ا سا تیاى ک ن. دس ا ذس یذ 3 هف م اصلی قاتل تیاى است: Manifest ک االى ضوا تا اش آض ا ستیذ ه اتغ resources ک ایي سا یض آض ا ستیذ. واى ػکس ا یا شگ ه ثغ ت ایي تشتیة ک داسین کاهپ ت ا. ضاهل ه اسد صیش هیط ذ )1 )2 )3 اکتی یتی ا. واى کالس ای اکتی یتی ک هیط اسیذ سش یس ا. تشای ا جام کاسی دس پس صهی تش اه هثال دا ل د یک فایل دس گام اجشای تش اه تذ ى اسجاد قف دس )1 )2 تش اه :Content provider چیضی ک االى ت ص تشخ سدین. ه اتغ هطتشک تیي تش اه ا! )3 هثال گالشی ضوا دس تیي تسیاسی اص ه اتغ اضتشاک گزاسی ضذ است. اص ایویل تلگشام یا ش تش اه ای ک تخ ا ذ ت تصا یش ضوا دستشسی داضت تاضذ. ت چ یي ه اتغ هطتشکی content provider هیگ یین 4( دس آخش ن :broadcast receiver ای ط س هثال تض ن. ایي اصطالح سا گاهی تکاس هیثشین ک هثال گ ضی ضوا صفح اش خاه ش است یک تش اه ای س یذادی سا حس هیک ذ هثال دسیافت پیام. صفح آى س ضي ضذ تا ت ضوا تیفیکیط ی سا طاى د ذ. 8
تشهیگشدین ت اداه کذ. هتذ.getContentResolver ایي هتذ اهکاى دستشسی ضوا ت content provider سا فشا ن هیک ذ. دقیقا ها ذ اهص سفتاس هیک ذ ت ایي هؼ ا ک دسخ استی ک یک کذ اص content provider داسد سا هیگیشد آى سا تا ذایت کشدى دست س ت content provider سفغ) resolve ( هیک ذ! دس اداه آدسس ػکسی ک ا تخاب کشدین سا داد این خش جی ایی داخلinputstream رخیش ضذ است. اص آ جایی ک ػکس دسیافتی داخل drawable قشاس ذاسد تایذ آى سا ت Bitmap تثذیل ک ین تا تت ا ین تؼ اى تک گشا ذ ImageView تذ ین. کذ خط تؼذ تص ست صیش ست: Bitmap ImageBitmap = BitmapFactory.decodeStream(inputStream); هتذ decodestream یک هتذ اص کالس BitmapFactory ست ک یک inputstream گشفت آى سا ت Bitmap تثذیل هیک ذ. کذ ها توام است! کافی ست ایي ImageBitmap تیج سا ت تک گشا ذ ImageView تذ ین! ((ImageView) findviewbyid(r.id.imageview)).setimagebitmap(imagebitmap); ت ا یک کت تایذ گفت ض د. کذی ک ها ضتین چ ى سایض ImagView تص ست هشتغ ست ت ا ػکس ای هشتغ سا قث ل هیک ذ. دس جلسات تؼذ یک س ش تشای crop کشدى ػکس هثل چیضی ک دس تلگشام داسین خ ا ن گفت. چیضی ک تا االى داسین تا صدى دکو ػکس: 9
سپس گالشی ا تخاب یک ػکس هشتؼی ضکل: دس آخش یک کاس جالة. اگش تخ ا ین ػکس تص ست دایش ای ض د چ 10
هیت ا ین ػکس سا تص ست دایش ن crop ک ین. اها کاس جالثی یست. هثل تلگشام تیاین ػول ک ین! س ی imageview خ دتاى یک ImageView دیگش تا کذ تک گشا ذ صیش تساصیذ ک سط ػکس تایذ خالی )transparent( تاض : 11
چ ى کاهال س ی قثلی قشاس هیگیشد داخل آى خالی است قتی ػکس ا تخاب ض د ت ظش هی آیذ ػکس ضوا ت فشم دایش ضذ! خست ثاضیذ 12