
نوشته شده توسط
darkenerboy
کد تغییر سایز Bitmap

Bitmap des = Bitmap.createScaledBitmap(src, width, height, true);
این کد ساده تر هست ولی یه مشکل داره!!! ما داریم تغییر سایز میدیم که حجم رم مصرفی رو کم کنیم. این کد اول یه بیت مپ تو سایز اصلی میسازه.بعد یه بیت مپ کوچیک تر از روش میسازه و بعد بیت مپ اصلی رو پاک میکنه. توی عکس ها بزرگ چون اول تو سایز اصلی باز میکنه احتمال out of memory exception پیدا میشه. وقتی عکس بزرگ هست بهتره از BitmapFactory استفاده بشه که از اول تو سایز کوچک تر دیکود بشه. کاش این توضیح رو هم میگفتید.چند وقت پیش اینقدر با این ها سر و کله زدم و رم مصرفی شون رو چک کردم که یه جورایی به رمی که بیت مپ استفاده میکنه آلرژی گرفتم.
------------------------------------------------
روش های چک کردن اتصال به اینترنت از طریق connectivityManager فقط وصل بودن به شبکه رو چک میکنند (مثلا شما به یه wifi وصل شدید ولی این wifi به اینترنت دسترسی نداره یا باید لاگین کرد تا اینترنت فعال بشه) . برای حل این مشکل میشه از این متد استفاده کرد
public static boolean isConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager)context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
try {
URL url = new URL("http://www.google.com/");
HttpURLConnection urlc = (HttpURLConnection)url.openConnection();
urlc.setRequestProperty("User-Agent", "test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(1000); // Timeout
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
} else {
return false;
}
} catch (IOException e) {
Log.i("warning", "Error checking internet connection", e);
return false;
}
}
return false; }
نوشتن دسترسی ها تو manifest فراموش نشه. یادم رفت این رو هم اضافه کنم که این تابع باید توی ترد جدا اجرا بشه! (تو همون ترد که از اینترنت استفاده میکنید)
-----------------------------------------------------------------------
لطفا دوستان دیگه هم همکاری کنند تا یه آرشیو خوب درست کنیم......