اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

- برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


محمد معین عبدی

کاربر رو به رشد
  • تعداد ارسال ها

    53
  • تاریخ عضویت

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

درباره محمد معین عبدی

  • درجه
    Advanced Member

روش های تماس

  • آدرس سایت http://mohandesin.info

مشخصات پروفایل

  • محل زندگی کرمانشاه
  • محل تولد کرمانشاه
  • علاقه مندی ها android studio

آخرین بازدید کنندگان نمایه

259 بازدید کننده نمایه
  1. api هواشناسی

    سلام بله تقریبا همشون تو ی قالبن ولی باید ببینید که. مقدار جیسون در‌ سرور اون سایت چی هست که با این جایگزین کنید. موفق باشید.
  2. api هواشناسی

    والا نمیدونم، زیاد بیسیک کار نکردم دوست نداشتم ، ولی فک کنم بشه استفاده کرد چون فقط اطلاعات با فرمت جیسون JSON دریافت میشن و کتابخانه جیسون هم واسه بیسیک موجوده ، بستگی به خلاقیت شما داره.
  3. ملت چقدر خسیس شدن :l همسایمون وایفایش رو جمع کرده :l 

  4. سلام دوستان عزیز ، امروز من ی قسمتی از نرم افزارمو داشتم تکمیل میکردم ، به قسمت هواشناسی رسیدم، نیاز داشتم از ی api هواشناسی استفاده کنم ، همونطور که میدونید سرور های زیادی api هواشناسی رو ارایه میکنن ولی بیشتر اون ها برای توسعه دهنده های ایرانی بستس از جمله یاهو !! خب ما در این آموزش سعی داریم که از api هواشناسی سایت زیر استفاده کنیم : openweathermap.org خب اول از همه وارد سایت میشید و ثبت نام میکنید ، توجه داشته باشید که پنل رایگان رو انتخاب کنید ، و بعد از ثبت نام ، وارد پنل خودتون بشید و بعد از انتخاب سرویس ، وارد قسمت API keys بشید و key خودتون رو ی جایی ذخیره کنید. خب حالا وارد اندروید استدیو بشید و یک پروژه جدید تشکیل بدید: خب حالا در اندروید استدیو یک کلاس به نام Function ایجاد کنید و کد های زیر رو در کلاس قرار بدید : import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.Date; import java.util.Locale; /** * Created by moein on 15/01/2017. */ public class Function { private static final String OPEN_WEATHER_MAP_URL = "http://api.openweathermap.org/data/2.5/weather?lat=%s&lon=%s&units=metric"; private static final String OPEN_WEATHER_MAP_API = "b996dd71d70d2b9f4e72a87e5c3b9260"; public static String setWeatherIcon(int actualId, long sunrise, long sunset){ int id = actualId / 100; String icon = ""; if(actualId == 800){ long currentTime = new Date().getTime(); if(currentTime>=sunrise && currentTime<sunset) { icon = "&#xf00d;"; } else { icon = "&#xf02e;"; } } else { switch(id) { case 2 : icon = "&#xf01e;"; break; case 3 : icon = "&#xf01c;"; break; case 7 : icon = "&#xf014;"; break; case 8 : icon = "&#xf013;"; break; case 6 : icon = "&#xf01b;"; break; case 5 : icon = "&#xf019;"; break; } } return icon; } public interface AsyncResponse { void processFinish(String output1, String output2, String output3, String output4, String output5, String output6, String output7); } public static class placeIdTask extends AsyncTask<String, Void, JSONObject> { public AsyncResponse delegate = null;//Call back interface public placeIdTask(AsyncResponse asyncResponse) { delegate = asyncResponse;//Assigning call back interfacethrough constructor } @Override protected JSONObject doInBackground(String... params) { JSONObject jsonWeather = null; try { jsonWeather = getWeatherJSON(params[0], params[1]); } catch (Exception e) { Log.d("Error", "Cannot process JSON results", e); } return jsonWeather; } @Override protected void onPostExecute(JSONObject json) { try { if(json != null){ JSONObject details = json.getJSONArray("weather").getJSONObject(0); JSONObject main = json.getJSONObject("main"); DateFormat df; String city = json.getString("name").toUpperCase(Locale.US) + ", " + json.getJSONObject("sys").getString("country"); String description = details.getString("description").toUpperCase(Locale.US); String temperature = String.format("%.2f", main.getDouble("temp"))+ "°"; String humidity = main.getString("humidity") + "%"; String pressure = main.getString("pressure") + " hPa"; String iconText = setWeatherIcon(details.getInt("id"), json.getJSONObject("sys").getLong("sunrise") * 1000, json.getJSONObject("sys").getLong("sunset") * 1000); delegate.processFinish(city, description, temperature, humidity, pressure, iconText, ""+ (json.getJSONObject("sys").getLong("sunrise") * 1000)); } } catch (JSONException e) { //Log.e(LOG_TAG, "Cannot process JSON results", e); } } } public static JSONObject getWeatherJSON(String lat, String lon){ try { URL url = new URL(String.format(OPEN_WEATHER_MAP_URL, lat, lon)); HttpURLConnection connection = (HttpURLConnection)url.openConnection(); connection.addRequestProperty("x-api-key", OPEN_WEATHER_MAP_API); BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream())); StringBuffer json = new StringBuffer(1024); String tmp=""; while((tmp=reader.readLine())!=null) json.append(tmp).append("\n"); reader.close(); JSONObject data = new JSONObject(json.toString()); // This value will be 404 if the request was not // successful if(data.getInt("cod") != 200){ return null; } return data; }catch(Exception e){ return null; } } } سپس در اندروید استدیو وارد قسمت لایه اکتیوتی مورد نظرتون بشید و کد های زیر رو اضافه کنید: <TextView android:id="@+id/city_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/weather_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceLarge" android:textSize="90sp" /> <TextView android:id="@+id/current_temperature_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceLarge" android:textSize="50sp" /> <TextView android:id="@+id/details_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/weather_icon" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/humidity_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/details_field" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/pressure_field" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/humidity_field" android:layout_centerHorizontal="true" android:textColor="#FFFFFF" android:textAppearance="?android:attr/textAppearanceMedium" /> و بعد از این وارد کلاس اکتیویتی خودتون بشید و کد های زیر رو اضافه کنید : TextView cityField, detailsField, currentTemperatureField, humidity_field, pressure_field, weatherIcon; Typeface weatherFont; cityField = (TextView)findViewById(R.id.city_field); detailsField = (TextView)findViewById(R.id.details_field); currentTemperatureField = (TextView)findViewById(R.id.current_temperature_field); humidity_field = (TextView)findViewById(R.id.humidity_field); pressure_field = (TextView)findViewById(R.id.pressure_field); weatherIcon = (TextView)findViewById(R.id.weather_icon); weatherIcon.setTypeface(weatherFont); Function.placeIdTask asyncTask =new Function.placeIdTask(new Function.AsyncResponse() { public void processFinish(String weather_city, String weather_description, String weather_temperature, String weather_humidity, String weather_pressure, String weather_iconText, String sun_rise) { cityField.setText(weather_city); detailsField.setText(weather_description); currentTemperatureField.setText(weather_temperature); humidity_field.setText("Humidity: "+weather_humidity); pressure_field.setText("Pressure: "+weather_pressure); weatherIcon.setText(Html.fromHtml(weather_iconText)); } }); asyncTask.execute("34.3277", "47.0778"); // asyncTask.execute("Latitude", "Longitude") و در آخر هم بیاید دسترسی اینترنت رو بهش بدید از طریق Manifest <uses-permission android:name="android.permission.INTERNET"/> و آخرین نکته اینه که فونتی رو که واستون پیوست میکنم به برنامه اضافه کنید و در پوشه assets/fonts قرار بدید. اگه بخوام همشو توضیح بدم زیاد میشه اگه دوستان میخان درخواست بدن که فیلم آموزشیشو تهیه کنم. با تشکر. weathericons-regular-webfont.zip
  5. با سلام دوست عزیز لازم به ایجاد تاپیک نبود ، با ی جستجو ساده میتونستید آموزش های مربوطه رو ببینید ، برای این اپ شما ، باید ابتدا آموزش لیست ویو ، و آموزش اینتنت intent رو ببینید که دربخش آموزش های تصویری موجوده.
  6. با سلام مثل اینکه مشکل از اندروید sdk هست ، اگه اپدیت نیست اپدیت کنید.
  7. یکی از پروژه های بزرگ اندرویدم رو شروع کردم احتمالا تا عید حاضر میشه :) :l

  8. سلام دوست عزیز ، اگه گوشی هوشمند دارید که با اون امتحان کنید اگر هم ندارید از جنی موشن استفاده کنید ب عنوان دستگاه مجازی ، از سایر شببه سازها بهتر و سریعتر هست.
  9. با سلام به نظرم شما میخاید تقریبا یک نوع تروجان بسازید :دی ببین دوست عزیز آموزشا تو انجمن هست با ی سرچ ساده میتونید پیدا کنید مثلا شما میخاید که تماس ها رو دریافت کنه ، پس شما لازم دارید که سابقه تماس رو ببیند که آموزشش تو انجمن هست اگه سرچ کنید ، و میخاید ی متن رو واسه شما اس ام اس کنه ، که اینم دوباره آموزشش تو انجمن هست موفق باشید.
  10. سورس تلگرام

    سلام دوستان ، کسی از دوستان اینجا با سورس تلگرام کار کرده؟؟ ی چند تا راهنمایی میخواستم اگه هست یا اینجا پیام بده یا تو تلگرام به ایدیم ممنون میشم. تلگرام : تماس با من ممنون میشم .
  11. دوست عزیز با یک جستجو ساده میتونستید آموزش مربوطه رو پیدا کنید، لازم به تاپیک زدن نیست ، اون چیزیو که شما میخاید رو میشه با استفاده از ریسایکلر ویو استفاده کنید.
  12. خواهش ، والا امتحان نکردم ، دیگه با بیسیک کار نمیکنم.
  13. سلام دوست عزیز تو فروشگاه انجمن رو ببینید. آموزش استاد اسکندری عزیز ی پکیج کامل تهیه کردن، اگه اندروید استدیو کار میکنید به شدت به کار شما میاد.
  14. سلام رووله ، خب دوست عزیز والا من با کتابخونه jpeg کار نکردم ولی این آموزش استفاده از فایل رو برات قرار میدم. خب توی قمت اکتیویتی کریت ی دستور قرار میدی : به صورت کد زیر : If File.ExternalWritable Then If File.Exists(File.DirRootExternal,"folder") = False Then File.MakeDir(File.DirRootExternal,"folder") End If Else Msgbox("حافظه شما غیرقابل نوشتن و استفاده است","هشدار") End If خب در قسمت بالا ما میریم و چک میکنیم که آیا حافظه داخلی ما قابلیت نوشتن رو داره یا نه ، اگه داشت چک کنه که پوشه ای به اسم folder وجود داره یا نه ، اگه وجود نداشت یکی بسازه توی حافظه داخلی ؛ اگر هم غیرقابل نوشتن بود که پیام بده که حافظه قابل نوشتن نیست. خب بعد از این میایم و عکس ها رو از طریق فایل منیجر بیسیک در برنامه قرار میدیم. سپس میایم و اون فایل ها رو به وسیله کد در همون پوشه در حافظه داخلی قرار میدیم . نکته : برای اینکه نرم افزار ارور نده بیا این کد ها رو به داخل شرط اول اضافه کن : خودم واست میذارم که گیج نشی : If File.Exists(File.DirRootExternal,"folder/pic1.jpg") = False Then File.Copy(File.DirAssets,"pic1.jpg",File.DirRootExternal,"folder/pic1.jpg") End If If File.Exists(File.DirRootExternal,"folder/pic2.jpg") = False Then File.Copy(File.DirAssets,"pic2.jpg",File.DirRootExternal,"folder/pic2.jpg") End If خب حالا این کدها رو بسته به تعداد فایلت باید تکرار کنی و به کد اول اضافه کنی به اینصورت : If File.ExternalWritable Then If File.Exists(File.DirRootExternal,"folder") = False Then File.MakeDir(File.DirRootExternal,"folder") End If If File.Exists(File.DirRootExternal,"folder/pic1.jpg") = False Then File.Copy(File.DirAssets,"pic1.jpg",File.DirRootExternal,"folder/pic1.jpg") End If If File.Exists(File.DirRootExternal,"folder/pic2.jpg") = False Then File.Copy(File.DirAssets,"pic2.jpg",File.DirRootExternal,"folder/pic2.jpg") End If Else Msgbox("حافظه شما غیرقابل نوشتن و استفاده است","هشدار") End If و در آخر هم دسترسی خواندن و نوشتن رو به برنامه بدید. امیدوارم واست مفید باشه. واسه فراخوانیشم به برنامت راهنماییت نمیکنم ببینم خودت میتونی حدس بزنی که باید چیکار کنی.
  15. سلام دوست عزیز ، ابتدا باید شما عکس ها رو‌به صورت تکی به بیسیک اضافه کنید، بعد تو منیفست به برنامه دسترسی خواندن و نوشتن رو بدید، و بعد در کارت حافظه یک پوشه رو ایجاد کنید و تمامی عکس ها رو به صورت تک تک با استفاده از کد درون پوشه کپی کنید ، من الان دارم میرم سرجلسه امتحان ، اگه کدها رو لازم داشتید بعدازظهر میام و در تاپیک قرار میدم موفق باشید.