چند سوال درمورد گالری تصویر
سلام بچه ها دارم یه گالری تصویر میسازم که خدارو شکر قسمتای آخریش رو تموم میکنم. حالا چندتا سوال زیر برام پیش اومده:
- برای نمایش تصاویر بندانگشتی هم باید اونارو دانلود کنیم دیگه، حالا اگر همین که کابر داره صفحه رو به پایین اسکرول میکنه (تصاویر هم دارن دانلود میشن و نمایش داده میشن)، حافظه گوشیش پر شه چه اتفاقی می افته؟ برنامه کرش می کنه؟ چه طور میشه کاری کرد که یک پیغام بهش نشون بدیم و بعد برنامه بسته شه.
- چه طور میتونم همینکه کاربر wiffi رو روشن کرد یه دستور رو اجرا کنم؟
- برنامم قابل انتقال به adcard نیست و فقط روی حافظه گوشی نصب میشه، حالا برای اینکه روی sdcard هم نصب شه چیکار باید کرد؟
بچه ها هر کدوم از سوالای بالا رو بلد بود لطفا جواب بدید. ممنون
1- میتونی تصاویر بند انگشتی رو جداگونه دانلود کنی و وقتی کاربر عکس رو انتخاب کرد ، عکس اصلی دانلود شه
اگه حافظه پر بشه هم که کرش میکنه
برای جلوگیری از کرش هم میتونی یه try catch بذاری و توی catch یه دیالوگی نمایش بدی و بعدش خواستی برنامه رو ببند یا همینطور باز بذارش
2- برای اینکه بعد روشن شدن wifi کاری انجام بدی باید از broadcast receiver مربوطه استفاده کنی که قبلا اینجا گفتمش : لینک
3- برای این هم باید یه کدی تو manifest بذاری . اینم لینکش : لینک
برای نصب روی کارت حافظه از اتریبیوت android:installLocation با مقدار "auto" یا "preferExternal"استفاده کن. البته تو api پایین 8 ازش صرفنظر میشه
با این حساب مشکل سوال اول برطرف میشه .
برای انجام کاری با تغییر وضعیت wifi یه BroadcastReceiver تعریف میکنی که تغییر وضعیت wifi رو بررسی میکنه
public class BroadCastSampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.registerReceiver(this.mConnReceiver,
new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);
NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
if(currentNetworkInfo.isConnected()){
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
}
}
};
}
طبعا برای کار کردن این کد پرمیشن های
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
رو هم نیاز داری
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .