PDA

View Full Version : این هم کد



darkenerboy
جمعه 22 فروردین 1393, 16:03 عصر
با سلام
استید محترم فرم
لطفا اگه کسی کد یا متدی پرکاربرد رو تو فرم خواست اینجا بزارید و لینکش رو از اینجا بدید
حداقل همه این سمپل های کوچیک کنار هم هستند
و به مرور زمان کامل میشه
انشاالله سعید عزیز هم این تاپیک رو ببره تو اعلان ها
با تشکر فراوان
نکته:
کد ها تست شده باشند
کد ها ساده و در حد کپی، پیست باشند

لیست کد های مهمتر تاپیک تاپیک (بعضی هاش نیست ها !!!)

ارسال برنامه از طریق بلوتوث (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2003777&viewfull=1#post2003777)
چک کردن وضعیت اینترنت (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2003779&viewfull=1#post2003779)
بکاپ گرفتن از SharedPreferences (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2003785&viewfull=1#post2003785)
تغییر سایز bitmap (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2004085&viewfull=1#post2004085)
تشخیص عمودی یا افقی بودن صفحه (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2004473&viewfull=1#post2004473)
ارسال متن و شماره تلفن به Messaging (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2004740&viewfull=1#post2004740)
چک کردن mount بودن حافظه خارجی (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2004944&viewfull=1#post2004944)
خروج از برنامه با دوبار لمس دکمه back (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008436&viewfull=1#post2008436)
تمام صفحه کردن activity (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008444&viewfull=1#post2008444)
دریافت یک ورودی توسط AlertDialog (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008448&viewfull=1#post2008448)
ذخیره یک رشته در حافظه موقت (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008459&viewfull=1#post2008459)
خواندن یک فایل متنی از assets (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008460&viewfull=1#post2008460)
کار با shared Preferences (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2008744&viewfull=1#post2008744)
کار با دگمه های فیزیکی افزایش/کاهش صدا (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2010723&viewfull=1#post2010723)
تشخیص جهت لمس (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2010724&viewfull=1#post2010724)
بدست آوردن مسیر حافظه خارجی (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2010811&viewfull=1#post2010811)
دستگاه تبلت هستش یا خیر (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2011054&viewfull=1#post2011054)
تغییر نوع Edittext بوسیله کد (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2014757&viewfull=1#post2014757)
ایجاد باتن و تکست ویو (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2016511&viewfull=1#post2016511)
ارسال شماره تلفن به شمار گیر Dialer (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2018912&viewfull=1#post2018912)
پخش فایل صوتی در حالت بی صدا (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2019204&viewfull=1#post2019204)
قرار دادن آهنگ مورد نظر به عنوان رینگتون (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2019422&viewfull=1#post2019422)
باز شدن تنظیمات wireless (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2020031&viewfull=1#post2020031)
دوبار کلیک (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2020049&viewfull=1#post2020049)
مکان نمایش Toast (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2022827&viewfull=1#post2022827)
روشن، خاموش کردن حالت پرواز (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025299&viewfull=1#post2025299)
پاسخ گویی خودکار به تماس(ها) (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025319&viewfull=1#post2025319)
هدایت کاربر قسمت نظرات یه برنامه در بازار (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025371&viewfull=1#post2025371)
ارسال متن فارسی به سرور (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025479&viewfull=1#post2025479)
تبدیل dp به px و برعکس (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2026460&viewfull=1#post2026460)
تشخیص اجرای برنامه روی شبیه ساز یا گوشی (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2026462&viewfull=1#post2026462)
چزخش bitmap (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2026467&viewfull=1#post2026467)

darkenerboy
جمعه 22 فروردین 1393, 16:04 عصر
کد ارسال برنامه از طریق بلوتوث



try {

PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/vnd.android.package-archive");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
startActivity(Intent.createChooser(share, "MyApp"));
} catch (Exception e) {
Log.e("ShareApp", e.getMessage());
}

darkenerboy
جمعه 22 فروردین 1393, 16:06 عصر
متد چک کردن وضعیت اینترنت


public static boolean isConnectingToInternet(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERV ICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
return true;
}
return false;
}


دسترسی مورد نیاز
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

ali-star
جمعه 22 فروردین 1393, 16:19 عصر
کد بکاپ گرفتن از SharedPreferences

private boolean saveSharedPreferencesToFile(File dst) {
boolean res = false;
ObjectOutputStream output = null;
try {
output = new ObjectOutputStream(new FileOutputStream(dst));
SharedPreferences pref =
getSharedPreferences(prefName, MODE_PRIVATE);
output.writeObject(pref.getAll());

res = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (output != null) {
output.flush();
output.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return res;
}

@SuppressWarnings({ "unchecked" })
private boolean loadSharedPreferencesFromFile(File src) {
boolean res = false;
ObjectInputStream input = null;
try {
input = new ObjectInputStream(new FileInputStream(src));
Editor prefEdit = getSharedPreferences(prefName, MODE_PRIVATE).edit();
prefEdit.clear();
Map<String, ?> entries = (Map<String, ?>) input.readObject();
for (Entry<String, ?> entry : entries.entrySet()) {
Object v = entry.getValue();
String key = entry.getKey();

if (v instanceof Boolean)
prefEdit.putBoolean(key, ((Boolean) v).booleanValue());
else if (v instanceof Float)
prefEdit.putFloat(key, ((Float) v).floatValue());
else if (v instanceof Integer)
prefEdit.putInt(key, ((Integer) v).intValue());
else if (v instanceof Long)
prefEdit.putLong(key, ((Long) v).longValue());
else if (v instanceof String)
prefEdit.putString(key, ((String) v));
}
prefEdit.commit();
res = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
if (input != null) {
input.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return res;
}

shahin bahari
شنبه 23 فروردین 1393, 00:56 صبح
کد تغییر سایز bitmap
private int calculateInSampleSize(BitmapFactory.Options options) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int thumbnailY=100; //desire size
int thumbnailX=100; //desire size
int inSampleSize = 1;
if (height > thumbnailY || width > thumbnailX) {
inSampleSize = (int) Math.pow(
2,
(int) (Math.log(Math.min((float) thumbnailY
/ (float) height, (float) thumbnailX
/ (float) width)) / Math.log(0.5)));
Log.i("in scale", "s is " + inSampleSize);
}
return inSampleSize;
}

استفاده هم به این شکل:
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, opt);
opt.inSampleSize = calculateInSampleSize(opt);
opt.inJustDecodeBounds = false;
opt.inPreferredConfig = Bitmap.Config.RGB_565;
return BitmapFactory.decodeFile(path, opt)

ali-star
شنبه 23 فروردین 1393, 19:25 عصر
تشخیص عمودی یا افقی بودن صفحه نمایش:

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// تشخیص عمودی یا افقی بودن صفحه نمایش
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "افقی", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "عمودی", Toast.LENGTH_SHORT).show();
}
}

darkenerboy
یک شنبه 24 فروردین 1393, 10:00 صبح
ارسال متن و شماره تلفن به messaging

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.putExtra("sms_body", message);
smsIntent.putExtra("address", number);
smsIntent.setType("vnd.android-dir/mms-sms");
startActivity(smsIntent);

darkenerboy
یک شنبه 24 فروردین 1393, 10:05 صبح
کد تغییر سایز Bitmap :لبخند:
Bitmap des = Bitmap.createScaledBitmap(src, width, height, true);

shahin bahari
یک شنبه 24 فروردین 1393, 14:53 عصر
کد تغییر سایز 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 فراموش نشه. یادم رفت این رو هم اضافه کنم که این تابع باید توی ترد جدا اجرا بشه! (تو همون ترد که از اینترنت استفاده میکنید)
-----------------------------------------------------------------------
لطفا دوستان دیگه هم همکاری کنند تا یه آرشیو خوب درست کنیم......

shahin bahari
یک شنبه 24 فروردین 1393, 14:59 عصر
چک کردن mount بودن حافظه خارجی

public static boolean checkSD(){
if (!Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED))
return false;
return true;
}

saeed_g21
شنبه 30 فروردین 1393, 11:38 صبح
فکر کنم نیاز به توضیح نداره

int screenSize = getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK;
switch(screenSize) {
case Configuration.SCREENLAYOUT_SIZE_LARGE:
Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_NORMAL:
Toast.makeText(this, "Normal screen",Toast.LENGTH_LONG).show();
break;
case Configuration.SCREENLAYOUT_SIZE_SMALL:
Toast.makeText(this, "Small screen",Toast.LENGTH_LONG).show();
break;
default:
Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
}

#root#
شنبه 30 فروردین 1393, 11:45 صبح
این هم کده خروج از برنامه با دوبار لمس دکمه back و نمایش پیام در اولین لمس
private static long back_pressed = 0L;

@Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis()) super.onBackPressed();
else Toast.makeText(getBaseContext(), "Press once again to exit!", Toast.LENGTH_SHORT).show();
back_pressed = System.currentTimeMillis();
}

#root#
شنبه 30 فروردین 1393, 11:53 صبح
این هم کد تمام صفحه کردن activity
public class FullScreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FL AG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

setContentView(R.layout.main);
}
}

#root#
شنبه 30 فروردین 1393, 11:55 صبح
این هم کد دریافت یک ورودی توسط AlertDialog
AlertDialog.Builder alert = new AlertDialog.Builder(this);

alert.setTitle("Title");
alert.setMessage("Message");

// Set an EditText view to get user input
final EditText input = new EditText(this);
alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText();
// Do something with value!
}
});

alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});

alert.show();

#root#
شنبه 30 فروردین 1393, 12:10 عصر
این هم کد ذخیره یک رشته در حافظه موقت
TextView textView = (TextView)findViewById(R.id.textview);

final String text = textView.getText().toString();

textView.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {

ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("label", text);
clipboard.setPrimaryClip(clip);

}

});

#root#
شنبه 30 فروردین 1393, 12:13 عصر
این هم کد خواندن یک فایل متنی از assets
InputStream input;
try {
input = getAssets().open(fileName);
int size = input.available();
byte[] buffer = new byte[size];
input.read(buffer);
input.close();
String text = new String(buffer);
}
catch (IOException e) {
e.printStackTrace();
}

poorman
شنبه 30 فروردین 1393, 20:15 عصر
کار با Shared Preferences :

ایجاد یک شیء جدید یا باز کردن یک شیء shared Preferences موجود با این دستور

SharedPreferences prefs = this.getSharedPreferences( "your_project_name_or ...", Context.MODE_PRIVATE);

اینجا اسم اون شیء رو مشخص میکنید، اگر موجود باشه بازش میکنه، اگه نباشه ایجادش میکنید ( حکم یک جدول توی دیتابیس رو داره )

حالا برای اینکه مقادیر رو وارد کنید یا آپدیت کنید و توی شیء تون ذخیره بشه باید ابتدا بگید که میخواید اون رو edit کنید و سپس برای هر مقدار نوع رو انتخاب کنید و مقادیر رو put کنید

SharedPreferences.Editor editor = prefs.edit();
editor.putInt("font", 14);
editor.putString("userName", "hojjat");
editor.commit();


بعد از هر تغییر این مهم هست که اون تغییرات رو commit کنید

برای خوندن اطلاعات به این صورت عمل کنید

int fontSize = prefs.getInt("font", 18);

اگر قسمتی به اسم font وجود داشته باشه توی شیء شما که مقدارش رو برمیگردونه، اگر نه مقدار پیشفرضی که مشخص میکنید برگشت داده میشه

saeed_g21
دوشنبه 01 اردیبهشت 1393, 11:21 صبح
اینم چرخه حیاتی اندروید در یک اکتیویتی
package com.example.activitylifecycle;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("lifecycle","onCreate invoked");
}
@Override
protected void onStart() {
super.onStart();
Log.d("lifecycle","onStart invoked");
}
@Override
protected void onResume() {

super.onResume();
Log.d("lifecycle","onResume invoked");
}

@Override
protected void onPause() {

super.onPause();
Log.d("lifecycle","onPause invoked");
}
@Override
protected void onStop() {

super.onStop();
Log.d("lifecycle","onStop invoked");
}

@Override
protected void onRestart() {

super.onRestart();
Log.d("lifecycle","onRestart invoked");
}
@Override
protected void onDestroy() {

super.onDestroy();
Log.d("lifecycle","onDestroy invoked");
}
}

saeed_g21
چهارشنبه 03 اردیبهشت 1393, 17:38 عصر
درسته این کد همگانی شده همه بدلن ولی میزارم واسه آرشیو شدن

کار با دگمه های فیزیکی افزایش/کاهش صدا


@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){
if (event.getAction() == KeyEvent.ACTION_UP){
// Dohme Afzayeshe Seda
}
return true;
}else if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){
if (event.getAction() == KeyEvent.ACTION_UP){
//Dogme Kaheshe Sheda
}
return true;
}
return super.dispatchKeyEvent(event);
}

saeed_g21
چهارشنبه 03 اردیبهشت 1393, 17:49 عصر
اینم تشخیص جهت لمس



public class activity extends Activity implements SimpleGestureListener {
private logskey detector;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}
@Override
public boolean dispatchTouchEvent(MotionEvent me) {
// Call onTouchEvent of SimpleGestureFilter class
this.detector.onTouchEvent(me);
return super.dispatchTouchEvent(me);
}
@Override
public void onSwipe(int direction) {

switch (direction) {
case logskey.SWIPE_RIGHT:
// Harakat be samte rast
break;
case logskey.SWIPE_LEFT:
// Harakat be samte chap
break;
case logskey.SWIPE_DOWN:
// Harakat be samte pain
break;
case logskey.SWIPE_UP:
// Harakat be samte bala

break;
}
}
@Override
public void onDoubleTap() {
// Duble Click
}
}

akbar8298
چهارشنبه 03 اردیبهشت 1393, 20:40 عصر
کد بدست آوردن مسیر حافظه خارجی. ( برای دستگاه هایی که هم حافظه داخلی و هم حافظه خارجی دارند)

public static String getWorkingDirectory(Context context) {
String path=null;
try {
path = Environment2.getSecondaryExternalStorageDirectory( ).getAbsolutePath() + "/your/folder/";
} catch (NoSecondaryStorageException e) {
if(!EnvironmentFunctions.checkSDCard(context.getAp plicationContext()))
return null;
path = Environment.getExternalStorageDirectory().getAbsol utePath()+"/your/folder/";
}
return path;
}

#root#
پنج شنبه 04 اردیبهشت 1393, 12:15 عصر
این هم کد فهمیدن اینکه دستگاه تبلت هستش یا ...
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenL ayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}

saeed_g21
پنج شنبه 11 اردیبهشت 1393, 01:55 صبح
اینم تغییر نوع Edittext بوسیله کد
mEdit.setInputType(InputType.TYPE_TEXT_VARIATION_P ASSWORD);

zayens
یک شنبه 14 اردیبهشت 1393, 14:30 عصر
یه کم سختر بشه بد نیست!
کد ایجاد باتن و تکست ویو


public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
//---param for views---
LayoutParams params =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);


//---create a layout---
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);


//---create a textview---
TextView tv = new TextView(this);
tv.setText("This is a TextView");
tv.setLayoutParams(params);


//---create a button---
Button btn = new Button(this);
btn.setText("This is a Button");
btn.setLayoutParams(params);

//---adds the textview---
layout.addView(tv);


//---adds the button---
layout.addView(btn);


//---create a layout param for the layout---
LinearLayout.LayoutParams layoutParam =
new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT );


this.addContentView(layout, layoutParam);

توی onCreate صفحه این کدها را پیست کنین و بدون اینکه در Graphical Layout یا با xml کنترلی گذاشته باشین این کنترلها خودشون اضافه میشن
(برای مواقع خاص کاربرد داره، توصیه میشه هیچ وقت در حالت عادی UI فرم را با کد درست نکنین)

#root#
پنج شنبه 18 اردیبهشت 1393, 10:42 صبح
این هم کد ارسال شماره تلفن به شمار گیر Dialer
public void dial(String num){
Intent callIntent = new Intent(Intent.ACTION_DIAL);
callIntent.setData(Uri.parse("tel:" + Uri.encode(num.trim().toString())));
callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
startActivity(callIntent);
}

استفاده از کد :
dial("09123456789");

saeed_g21
پنج شنبه 18 اردیبهشت 1393, 19:00 عصر
زمانی که کاربر صدارو کاملا کم یا روی Mute میزاره میتونین با این کد فایل صوتی پخش کنین
تست شده و جواب داده برام

AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVI CE);
mAudioManager.setStreamVolume(AudioManager.STREAM_ MUSIC, 20, 0);

darkenerboy
جمعه 19 اردیبهشت 1393, 07:39 صبح
این هم کد قرار دادن آهنگ مورد نظر به عنوان رینگتون

File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtone

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "My Song title");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Madonna");
values.put(MediaStore.Audio.Media.DURATION, 230);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);

//Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getA bsolutePath());
Uri newUri = main.getContentResolver().insert(uri, values);

RingtoneManager.setActualDefaultRingtoneUri(
myActivity,
RingtoneManager.TYPE_RINGTONE,
newUri
);

لطفا تست کنید
من از stack برداشتم برای یکی از دوستامون

kinglove0111
جمعه 19 اردیبهشت 1393, 14:54 عصر
سلام
اگر آهنگ در حافظه گوشی باشه و آدرسشو در زیر وارد کنی جواب میده
File k = new File(path, "mysong.mp3");
اما اگر آهنگ در یک پوشه در برنامه مثلا assets باشه دیگه کار نمیده
کد برنامه درسته فقط مشکل آدرس آهنگو داره :گریه:

moralschool
جمعه 19 اردیبهشت 1393, 15:43 عصر
اگه بخوای از یه پوشه مثلا از raw فراخوانی کنی میتونی این کد رو در یه دکمه و در on creat قرار بدی


saveas1(RingtoneManager.TYPE_RINGTONE);

و کد زیر رو هم بعد از oncreat یعنی خارج از اون ، قرار بدی :



public boolean saveas1(int type) {
byte[] buffer = null;
InputStream fIn = getBaseContext().getResources().openRawResource(
R.raw.zang1);
int size = 0;

try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
return false;
}

String path = Environment.getExternalStorageDirectory().getPath( )
+ "/media/audio/ringtones/";

String filename = "zang1.mp3";

boolean exists = (new File(path)).exists();
if (!exists) {
new File(path).mkdirs();
}

FileOutputStream save;
try {
save = new FileOutputStream(path + filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
return false;
} catch (IOException e) {
return false;
}

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://" + path + filename)));

File k = new File(path, filename);

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, filename);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

// This method allows to change Notification and Alarm tone also. Just
// pass corresponding type as parameter
if (RingtoneManager.TYPE_RINGTONE == type) {
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
} else if (RingtoneManager.TYPE_NOTIFICATION == type) {
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
} else if (RingtoneManager.TYPE_ALARM == type) {
values.put(MediaStore.Audio.Media.IS_ALARM, true);
}

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k
.getAbsolutePath());
Uri newUri = Zang.this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(Zang.t his, type,
newUri);

// Insert it into the database
this.getContentResolver()
.insert(MediaStore.Audio.Media.getContentUriForPat h(k
.getAbsolutePath()), values);

return true;
}

حالا بعضی جاها توی این پست سیستم این انجمن خودش فاصله انداخته و نمیشه برداشتشون ! و توی ایکلیپس خطا میده و معلومن ! اونا رو فاصله هاشونو حذف کنید درست میشه
کد تست شده و بدرستی کار میکنه :لبخند:

#root#
شنبه 20 اردیبهشت 1393, 11:39 صبح
این هم کد باز شدن تنظیمات wireless
startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));

این هم کد باز شدن انتخاب شبکه wireless برای اتصال به اون
startActivity(new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK));

#root#
شنبه 20 اردیبهشت 1393, 11:54 صبح
این هم کد دوبار کلیک

private long time = 0l;

if (time + 2000 > System.currentTimeMillis()) {
// کدی که میخواهید با دوبار لمس پیاپی اجرا بشه
} else
time = System.currentTimeMillis();

saeed_g21
چهارشنبه 24 اردیبهشت 1393, 23:34 عصر
خیلی وقته آپ نشده

با این کد میتونین مکان نمایش Toast رو تنظیم کنین

Toast toast1=Toast.makeText(getApplicationContext(), "محل نمایش بالا سمت راست",Toast.LENGTH_LONG); toast1.setGravity(Gravity.TOP | Gravity.RIGHT, 0, 0);
toast1.show();

saeed_g21
دوشنبه 29 اردیبهشت 1393, 09:46 صبح
اینم اولی برای روشن کردن و دومی برای خاموش کردن حالت پرواز

Settings.System.putInt(getContentResolver(),Settin gs.System.AIRPLANE_MODE_ON, 1);//Turning ON Airplane mode.
Toast.makeText(getApplicationContext(), "Air Plane Mode is On",Toast.LENGTH_LONG).show();//Displaying a Message to user
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);//creating intent and Specifying action for AIRPLANE mode.
intent.putExtra("state", true);////indicate the "state" of airplane mode is changed to ON
sendBroadcast(intent);//Broadcasting and Intent



Settings.System.putInt(getContentResolver(),Settin gs.System.AIRPLANE_MODE_ON, 0);//Turning OFF Airplane mode.
Toast.makeText(getApplicationContext(), "Air Plane Mode is Off",Toast.LENGTH_LONG).show();//Displaying a Message to user
Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);//creating intent and Specifying action for AIRPLANE mode.
intent.putExtra("state", false);//indicate the "state" of airplane mode is changed to OFF
sendBroadcast(intent);//Broadcasting and Intent


اینم مجوز
android.permission.WRITE_SETTINGS

saeed_g21
دوشنبه 29 اردیبهشت 1393, 10:26 صبح
اینم پاسخ گویی خودکار به تماس(ها)

public class AutoReceiverIncomingCall extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub

String extraState =intent.getStringExtra(TelephonyManager.EXTRA_STAT E); //Getting Extra State
if (extraState.equals(TelephonyManager.EXTRA_STATE_RI NGING)) //Checking Phone State (Ringing or Not)
{
//If the Phone is Ringing getting the Incoming number/
String incomingNumber =intent.getStringExtra(TelephonyManager.EXTRA_INCO MING_NUMBER);
if (incomingNumber.contentEquals("989123456789"))
{
//---answer the call---
Intent i = new Intent(Intent.ACTION_MEDIA_BUTTON);
i.putExtra(Intent.EXTRA_KEY_EVENT,new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_HEADS ETHOOK));
context.sendOrderedBroadcast(i, null);
}
}
return;
}
}


اینم مجوز

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

moralschool
دوشنبه 29 اردیبهشت 1393, 12:04 عصر
کدی برای اینکه کاربر رو مستقیم به قسمت نظرات یه برنامه در بازار هدایت میکنه :


Intent browserIntent = new Intent(Intent.ACTION_EDIT, Uri.parse("http://cafebazaar.ir/app/?id=نام پکیج برنامه"));
startActivity(browserIntent);

darkenerboy
دوشنبه 29 اردیبهشت 1393, 14:32 عصر
ارسال متن فارسی به سرور:


List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("Comment", "متن مورد نظر"));
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://Address/page.php");
httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
httpClient.execute(httpPost);

NeoFighT
دوشنبه 29 اردیبهشت 1393, 18:27 عصر
سلام,
بچه ها خواهشا تو کد هایی که میزارین جاهایی که لازمه با کامنت یه توضیح بدین.
اینو میگم که هم تازه کارا راحت باشن هم آرشیو کامل بشه.
از مدیر هم مبخوام این پست رو هر وقت موقش شد پاک کنن.
ممنون.:چشمک:

dasssnj
چهارشنبه 31 اردیبهشت 1393, 07:57 صبح
تبدیل dp به px و برعکس:
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density ;
return (int) (dpValue * scale + 0.5f);
}


public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density ;
return (int) (pxValue / scale + 0.5f);
}

dasssnj
چهارشنبه 31 اردیبهشت 1393, 08:00 صبح
تشخیص اجرای برنامه روی شبیه ساز یا گوشی:

public static boolean isEmulator() {
return Build.MODEL.equals("sdk") || Build.MODEL.equals("google_sdk");
}

dasssnj
چهارشنبه 31 اردیبهشت 1393, 08:02 صبح
چزخش bitmap :
public static Bitmap rotateBitmap(Bitmap source, int rotation, boolean recycle) {
if (rotation == 0) return source;
int w = source.getWidth();
int h = source.getHeight();
Matrix m = new Matrix();
m.postRotate(rotation);
Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, w, h, m, true);
if (recycle) source.recycle();
return bitmap;
}
}

dasssnj
چهارشنبه 31 اردیبهشت 1393, 08:05 صبح
چک می کند که آیا برای فعالیت این اینتنت برنامه ای وجود دارد یا خیر:

public static boolean isIntentAvailable(final Context context, final Intent intent) {
final PackageManager packageManager = context.getPackageManager();
List<ResolveInfo> list =
packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}

dasssnj
چهارشنبه 31 اردیبهشت 1393, 08:06 صبح
چک می کند که آیا برنامه این دسترسی را دارد یا خیر :

public static boolean hasPermissions(Context context, String... permissions) {
for (String p : permissions)
if (context.checkCallingOrSelfPermission(p) == PackageManager.PERMISSION_DENIED)
return false;
return true;
}// hasPermissions()
}

dasssnj
چهارشنبه 31 اردیبهشت 1393, 08:08 صبح
آیا گوشیم فلاش داره؟

public static boolean hasFlash(Context con) {
boolean mHasFlash = false;
try {
PackageManager pm = con.getPackageManager();
mHasFlash = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_ FLASH);
return mHasFlash;
} catch (Throwable t) {
mHasFlash = null;
return false;
}
}

saeed_g21
پنج شنبه 01 خرداد 1393, 23:47 عصر
کدی برای حذف برنامه


Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);

مانیفیست
<activity android:name=".UninstallerActivity"> <intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</activity>

saeed_g21
پنج شنبه 01 خرداد 1393, 23:48 عصر
کدی برای نصب برنامه

fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);

مانیفیست
<activity android:name=".PackageInstallerActivity"> <intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:mimeType="application/vnd.android.package-archive" />
</intent-filter>
</activity>

hamedjj
شنبه 03 خرداد 1393, 18:59 عصر
خروج از برنامه : فقط AppExit() را در listener هر دکمه ای که میخواهید قرار دهید


public void AppExit() {
this.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}

dasssnj
یک شنبه 04 خرداد 1393, 14:59 عصر
تشخیص روت بودن گوشی:

public static boolean isRooted() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(
process.getOutputStream());
os.writeBytes("exit\n");
os.flush();
process.waitFor();
int i = process.exitValue();
if (i == 0)
return true;
else
return false;


} catch (Exception e) {
}
return false;
}

aminbir
سه شنبه 06 خرداد 1393, 20:20 عصر
بدین صورت


: WindowManager.LayoutParams attrs = this.getWindow().getAttributes();

//go full screen
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
this.getWindow().setAttributes(attrs);

// go non-full sceen
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setAttributes(attrs);

برای نمایش یا مخفی کردن ActionBar هم همون طور که گفتید باید قبل از setContentView این کار رو کرد ،


requestWindowFeature(Window.FEATURE_NO_TITLE);

#root#
سه شنبه 06 خرداد 1393, 20:28 عصر
این هم کد تمام صفحه کردن Activity و عکس آن
WindowManager.LayoutParams attrs = this.getWindow().getAttributes();

//تمام صفحه کردن
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
this.getWindow().setAttributes(attrs);

//خروج از حالت تمام صفحه
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
this.getWindow().setAttributes(attrs);

javadi3d
چهارشنبه 07 خرداد 1393, 16:42 عصر
اگه بخوای از یه پوشه مثلا از raw فراخوانی کنی میتونی این کد رو در یه دکمه قرار بدی و براحتی موزیک مورد نظرت رو بعنوان زنگ موبایل قرار بدی :



byte[] buffer = null;
InputStream fIn = getBaseContext().getResources().openRawResource(
R.raw.zang1);
int size = 0;

try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
return false;
}

String path = Environment.getExternalStorageDirectory().getPath( )
+ "/media/audio/ringtones/";

String filename = "zang1.mp3";

boolean exists = (new File(path)).exists();
if (!exists) {
new File(path).mkdirs();
}

FileOutputStream save;
try {
save = new FileOutputStream(path + filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
return false;
} catch (IOException e) {
return false;
}

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://" + path + filename)));

File k = new File(path, filename);

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, filename);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

// This method allows to change Notification and Alarm tone also. Just
// pass corresponding type as parameter
if (RingtoneManager.TYPE_RINGTONE == type) {
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
} else if (RingtoneManager.TYPE_NOTIFICATION == type) {
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
} else if (RingtoneManager.TYPE_ALARM == type) {
values.put(MediaStore.Audio.Media.IS_ALARM, true);
}

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k
.getAbsolutePath());
Uri newUri = Zang.this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(Zang.t his, type,
newUri);

// Insert it into the database
this.getContentResolver()
.insert(MediaStore.Audio.Media.getContentUriForPat h(k
.getAbsolutePath()), values);

return true;


سلام
وقتی این کد را در یک دکمه بعد از setonclicklistener قرار بدی خیلی از کدها را نمیشناسه و نمیشه import کرد
باید چیکار کرد؟

poorman
شنبه 10 خرداد 1393, 18:49 عصر
نمایش یک Toast بیشتر از زمان مشخص شده

این کد رو پیدا کردم به نظرم مفید اومد

در حالت عادی Toast دو مقدار زمانی میتونه داشته باشه، short برابر 2000 میلی ثانیه (2 ثانیه) و long برابر 3500 میلی ثانیه (3.5 ثانیه)

اگر بخواین چند تا Toast رو پشت سر هم نشون بدید بینشون معلوم میشه که toast داره عوض میشه

با کد زیر یک Toast به مدت 10 ثانیه بدون مشکل در نمایش نشون بدید !!!

final Toast tag = Toast.makeText(getBaseContext(), "YOUR MESSAGE",Toast.LENGTH_SHORT);

tag.show();


new CountDownTimer(9000, 1000)
{


public void onTick(long millisUntilFinished) {tag.show();}
public void onFinish() {tag.show();}


}.start();

dasssnj
یک شنبه 11 خرداد 1393, 10:59 صبح
نمایش توست دقیقا زیر ویو مرد نظر:(مثل ایتم های اکشن بار)

public static void showToastUnder(View v){
Toast toast = Toast.makeText(v.getContext(),
v.getContentDescription(), Toast.LENGTH_SHORT);
toast.setGravity(Gravity.LEFT | Gravity.TOP, v.getLeft(),
v.getBottom() + v.getBottom() / 2);
toast.show();
}

Erfan-APK
شنبه 24 خرداد 1393, 10:21 صبح
اینم کد لرزاندن گوشی اندرویدی (=ویبره :لبخند:)
اول پرمیشن رو تو منیفست اضافه کنید:ناراحت::

<uses-permission android:name="android.permission.VIBRATE"/>

اینم خود ویبره(هرجا بخواید می تونید بنویسید)

Vibrator vibrator = (Vibrator)getSystemService(main.VIBRATOR_SERVICE);
///زمان به میلی ثانیه = 2ثانیه تو این مثال
vibrator.vibrate(2000);
// الگوی ویبره که تو این مثال به صورت افزایشیه
long pattern[]={0,800,200,1200,300,2000,400,4000};
// -1 = اگر نمیخواین دوباره ویبره تکرار بشه
vibrator.vibrate(pattern,-1);

dasssnj
دوشنبه 26 خرداد 1393, 12:43 عصر
اینم پیدا کردن عدد رندم بین دو عدد (البته مربوط به طراحی الگوریتم میشه و اختصاصی اندروید نیست):
public static int rand(int a, int b) {
if (a == b)
return -1;
else if (a > b)
return -1;
else if (b - a == 1)
return -1;
Random r = new Random();
int y = r.nextInt(b);
if (y < a)
y += (a - y) + r.nextInt(b - a);
if (y != a)
return y;
else
return y + 1 + r.nextInt((b - a) - 1);
}


البته اعداد پارامتر نباید مساوی باشند. دومی نباید کوچکتر از اولی باشه و تفاضلشون باید بیشتر از 1 باشه وگر نه 1- برمی گردونه.
این فراموش نشه:
import java.util.Random;

dasssnj
دوشنبه 26 خرداد 1393, 13:17 عصر
اینم رندم ترکیبی از زمان و شئ رندوم:

public static long rand2(){
return new Random().nextInt(500)*System.nanoTime();
}

hamedjj
دوشنبه 26 خرداد 1393, 18:44 عصر
با تکه کد زیر میتوانید متن ها را با فونت دلخواه خود در برنامه نشان دهید:
فونت ها را در پوشه Assets قرار دهید و نام آنها را در مکان مورد نظر تایپ کنید :

TextView txt = (TextView) parentView.findViewById(R.id.other);
Typeface font = Typeface.createFromAsset(getAssets(), "نام فونت");
txt.setTypeface(font); اگر کلاس مورد نظر از fragment اکستندز شده به getActivity() نیاز دارد :


TextView txt = (TextView) parentView.findViewById(R.id.other);
Typeface font = Typeface.createFromAsset(getActivity().getAssets() , "نام فونت");
txt.setTypeface(font);

در آخر یه چند تا سایت برای دانلود فونت های فارسی و فونت های مورد استفاده در برنامه مارکت بازار :
فونت های مورد استفاده در برنامه بازار (http://uplod.ir/u858903tm2gp/font.rar.htm)


فونت دات آی آر (http://font.ir/)
فونت یاب (http://www.fontyab.com/)
آوب فونت (http://awebfont.ir/)
یوفونت (http://www.ufont.ir)
ایران فونت (http://irfont.ir/)

badname
پنج شنبه 29 خرداد 1393, 15:53 عصر
شناسی مدل دستگاه و ورژن اندرویدش:

//Device model
String PhoneModel = android.os.Build.MODEL;
//Android version
String AndroidVersion = android.os.Build.VERSION.RELEASE;

dasssnj
چهارشنبه 04 تیر 1393, 10:08 صبح
پیدا کردن بزرگترین عدد بین هر چندتا عدد که دلتون بخواد !!!!!

public static int max(int... i){
int max;
int c = i[0];
max=c;
for (int k = 1; k < i.length; k++){
if(i[k]>max)
max=i[k];
}
return max;
}


طریقه ی استفاده :

int i = max(2,-5,1000,50,60,600);
int j = max(1,8,4,54,87,468,354,156,357,68,354,68,34,69);

rubiks.kde
چهارشنبه 04 تیر 1393, 13:38 عصر
پیدا کردن بزرگترین عدد بین هر چندتا عدد که دلتون بخواد !!!!!

public static int max(int... i){
int max;
int c = i[0];
max=c;
for (int k = 1; k < i.length; k++){
if(i[k]>max)
max=i[k];
}
return max;
}


int i = max(2,-5,1000,50,60,600);
int j = max(1,8,4,54,87,468,354,156,357,68,354,68,34,69);


دوست عزیز این کدها مربوط به طراحی الگوریتم هست و نیازی نیست این جا گفته بشه.تنها کدهای تخصصی اندروید
طریقه ی استفاده :

dasssnj
چهارشنبه 04 تیر 1393, 14:15 عصر
دوست عزیز این کدها مربوط به طراحی الگوریتم هست و نیازی نیست این جا گفته بشه.تنها کدهای تخصصی اندروید


بله ممنون که تذکر دادید ولی گفتم توی اندروید هم شاید به کار بیاد دیگه:چشمک:

poorman
پنج شنبه 05 تیر 1393, 11:05 صبح
کد پیدا کردن اندازه استاتوس بار ( نوتیفیکیشن بار )

همونطور که میدونین یا شاید هم دقت نکردین، استاتوس بار توی اندازه صفحه های مختلف، اندازه های مختلف داره

مثلا توی اندازه 320*240 اندازه استاتوس بار 20px هست و توی 320*480 برابر 25px و توی 480*720 برابر 38px و ...

با کد زیر به راحتی اندازه رو به دست بیارید ( مورد استفاده در طراحی طبق اندازه )

public int getStatusBarHeight() { int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}

dasssnj
پنج شنبه 05 تیر 1393, 13:30 عصر
این هم کد تبدیل string به int با الگوریتمی متفاوت از Integer.parseInt .

public static int strToint(String e) throws NumberFormatException {
if (e == null || e.length() < 1 || e.equals("")) //string moshkel dare
throw new NumberFormatException("String : " + e + " is corrupt !");

char[] ch = e.toCharArray();
boolean negative = false; //manfi
int len = ch.length; // toole adad
int[] i = new int[len]; //araye adad
short j, k; // adad halghe ha
int result = 0; //javab
if (ch[0] == '-') { //manfi
if (e.length() == 1)
throw new NumberFormatException("String : " + e + " is corrupt !");

negative = true; // manfi mishe
ch = e.substring(1).toCharArray();
len = ch.length;
} else if (ch[0] == '+') { //mosbat
if (e.length() == 1)
throw new NumberFormatException("String : " + e + " is corrupt !");
ch = e.substring(1).toCharArray();
len = ch.length;
}

for (j = 0; j < len; j++) {
if (ch[j] < '0' || ch[j] > '9') // bayad beine 0 ta 9 bashe
throw new NumberFormatException("String : " + e + " Not a Number !");
i[j] = ch[j] - 48; // az char ke adad bashe 48 ta kam koni mishe int
for (k = 0; k < len - (j + 1); k++)
i[j] *= 10; //sefr ha ra mizaram ba zarb dar 10

result += i[j]; // hala jam mikonam
if (result < 0) //aslan nabayad manfi bashe
{
if (result == -2147483648 && negative) {//No problem (-|0)
// irad az man nist . system manfi bar migardoone . baray hamin in shart lazeme
} else //adad bozorg tar az int
{
throw new NumberFormatException("Number : " + e + " is out of range for int! ");
}
}
}
return negative ? -result : result; // manfi bashe ya mosbat
}

poorman
جمعه 06 تیر 1393, 23:24 عصر
کد حالت تایپ کردن تکست در textView


http://upload7.ir/imgs/2014-06/21410925590274767602.gif

این تابع رو توی اکتیویتی اضافه کنین، تکست خودتون رو توی متغیر matn قرار بدید

String matn = "اینجا متن مورد نظر رو قرار بدید";
int cnt = 0;
private Handler handler = new Handler();

private Runnable removeTxtPoint = new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
if(cnt <= matn.length()){
textView.setText(matn.substring(0, cnt));
cnt++;
}else{
handler.removeCallbacks(removeTxtPoint);
}
handler.postDelayed(this, 5); // میتونین این عدد رو تغییر بدید تا سرعت کم یا زیاد بشه
}
};

بعدش توی متد onStart اکتیویتی تون، این کد رو بنویسید

removeTxtPoint.run();

pesare
جمعه 20 تیر 1393, 13:20 عصر
سلام

میشه درباره این کد توضیح بدین؟


try {
PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/vnd.android.package-archive");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
startActivity(Intent.createChooser(share, "MyApp"));
} catch (Exception e) {
Log.e("ShareApp", e.getMessage());
}

saeed_g21
جمعه 27 تیر 1393, 17:40 عصر
بازم که خیلی وقته بروز نشده که

مبدل تاریخ شمسی به میلادی

خودم نوشتم تست کردم جواب داده شما هم قبل استفاده تست کنید بهتره
قابل شما دوستان رو نداره

public class MiladiDate { public String todayMiladi(int y,int m,int d) {

String year = ""+y;
String month = ""+m;
String day = ""+d;
int Y = Integer.valueOf(year);
int M = Integer.valueOf(month);
int D = Integer.valueOf(day);
return Shamsi(Y, M, D);
}

public String Shamsi(int Y, int M, int D)
{
int gDay,gMonth,gYear;
switch(M) {
case 1:
if(D <= 11){
M = 3;
D = D + 20;
}else{
M = 4;
D = D - 11;
}
break;
case 2:
if(D <= 10){
M = 4;
D = D + 20;
}else{
M = 5;
D = D -10;
}
break;
case 3:
if(D <= 10){
M = 5;
D = D + 21;
}else{
M = 6;
D = D - 10;
}
break;
case 4:
if(D <= 9 ){
M = 6;
D = D + 21;
}else{
M = 7;
D = D - 9;
}
break;
case 5:
if( D <= 9){
M = 7;
D = D + 22;
}else{
M = 8;
D = D - 9;
}
break;
case 6:
if(D <= 9){
M = 8;
D = D + 22;
}else{
M=9;
D = D - 9;
}
break;
case 7:
if(D <= 8){
M = 9;
D = D + 22;
}else{
M = 10;
D = D - 8;
}
break;
case 8:
if(D <= 9){
M = 10;
D = D + 22;
}else{
M = 11;
D = D - 9;
}
break;
case 9:
if(D <= 9){
M = 11;
D = D + 21;
}else{
M = 12;
D = D - 9;
}
break;
case 10:
if(D <= 10){
M = 12;
D = D + 21;
}else{
M = 1;
D = D - 10;
}
break;
case 11:
if(D <= 11){
M = 1;
D = D + 20;
}else{
M = 2;
D = D - 11;
}
break;
case 12:
if(D <= 9 ){
M = 2;
D = D + 19 ;
}else{
M = 3;
D = D - 9;
}
break;
}

gDay = D;
gMonth = M;
gYear = Y+621+ (8-gMonth)/6;
return ""+gDay + "/"+gMonth +"/"+gYear;
}





نحوه استفاده :

1) فایلی (Class) که ایجاد میکنید حتما اسمش MiladiDate باشه
2)

MiladiDate MDate = new MiladiDate();
MDate.todayMiladi(1393, 04, 27);


توجه مهم : بایستی تاریخ شمسی رو بصورتی که در نمونه وارد شده وارد کنید تا به تاریخ میلادی تبدیل شود

abbasalim
جمعه 27 تیر 1393, 21:11 عصر
saeed_g21 (http://barnamenevis.org/member.php?113675-saeed_g21) اگه برعکسش رو هم داری بزار که کامل بشه :تشویق:

saeed_g21
جمعه 27 تیر 1393, 22:48 عصر
saeed_g21 (http://barnamenevis.org/member.php?113675-saeed_g21) اگه برعکسش رو هم داری بزار که کامل بشه :تشویق:

نه ننوشتم براش ولی بزودی به یاری خدا حلش میکنم میدم

poorman
دوشنبه 30 تیر 1393, 16:17 عصر
به دست آوردن اسم تمامی عکس های داخل پوشه drawable

و طریقه تبدیل اسم عکس به آیدی

--------------

این کدها توی پروژه جدیدم استفاده شد که دیدم میتونه مفید واقع بشه

اگر خواستین لیستی از نام عکس های داخل پوشه drawable بگیرید به صورت زیر عمل کنید و نام ها رو داخل لیست picsList بریزید

Field[] drawables = R.drawable.class.getFields();
ArrayList<String> picsList = new ArrayList<String>();
for (Field f : drawables) {
try {

picsList.add(f.getName());

} catch (Exception e) {
e.printStackTrace();
}

}

این کد تمام عکس رو میگیره، حالا اگر خواستید یک سری عکس مشخص رو بگیرید باید چکار کنید ؟؟؟ :متفکر:

یک راه حل اینه که توی اسم عکس هاتون مشخص کنید، مثلا اسم آیکون ها رو اینطوری تغییر بدید icon_image_name

بعد توی کد بالا چک میکنید که اگر اسم عکس شامل _icon بود اون اسم رو داخل لیست قرار بده

if(f.getName().toString().indexOf("icon_") > -1){
picsList.add(f.getName());
}

بعد این لیست رو میتونید بفرستید به یک آداپتر، توی لیست ویو یا هرجای دیگه نمایشش بدید

و اما اینکه چطور با استفاده از اسم عکس ها، به آیدی اون دسترسی پیدا کنید

int id = context.getResources().getIdentifier("your_image_name", "drawable", getPackageName());
imageView.setImageResource(id);

1yaram
پنج شنبه 09 مرداد 1393, 19:43 عصر
فعال و غیر فعال کردن نوتیفیکیشن با toggle button

ویژگی ها : اگه toggle button روشن کنی notifacition میاد و با اجبار هم میمونه اون بالا واگه خاموش کنی notification حذف میشه


import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ToggleButton;


public class Notificatio extends Activity {
//private static final int NOTIFICATION_ID = 1;
private NotificationManager mNotificationManager;
protected static final int NOTIFICATION_ID = 0;




@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("نوار اعلان");
setContentView(R.layout.notificition);


NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this);


mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);


/* notificationID allows you to update the notification later on. */
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());

/** تعریف تنظیمات برای نوتیفیکیشن ما */
/** تعریف تنظیمات برای نوتیفیکیشن ما */
int icon = R.drawable.ic_launcher;
/**آدرس آیکون موردنظر جهت نمایش در استاتوس بار*/
CharSequence tickerText = "نوتیفیکیشن فعال شد";
long when = System.currentTimeMillis();
Context context = getApplicationContext();
CharSequence contentTitle = "TagsUpLikes";
CharSequence contentText = "برای انتخاب تگ ها اینجا کلیک کنید";
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);


/** مقداردهی اولیه Notificationبا استفاده از تنظیمات بالا */
final Notification notification = new Notification(icon, tickerText, when);
notification.flags = notification.flags | Notification.FLAG_ONGOING_EVENT;
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);


/** بازیابی مرجع از NotificationManager*/
String ns = Context.NOTIFICATION_SERVICE;
final NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);


/**final ToggleButton tb = (ToggleButton) findViewById(R.id.toggleButton1);
tb.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
if(tb.isChecked()){
mNotificationManager.notify(NOTIFICATION_ID, notification);
}
else{
cancelNotification();

}
}
});
*\

///** Listener برای کلیک */
Button statusbarnotify = (Button) findViewById(R.id.Button1);
statusbarnotify.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mNotificationManager.notify(NOTIFICATION_ID, notification);
}

});
Button cancelnorify = (Button) findViewById(R.id.button2);
cancelnorify.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
cancelNotification();

}
});
}

protected void cancelNotification() {
Log.i("Cancel", "notification");
mNotificationManager.cancel(NOTIFICATION_ID);






}



}

ho3ein.3ven
جمعه 10 مرداد 1393, 15:46 عصر
اگه بخوای از یه پوشه مثلا از raw فراخوانی کنی میتونی این کد رو در یه دکمه و در on creat قرار بدی


saveas1(RingtoneManager.TYPE_RINGTONE);

و کد زیر رو هم بعد از oncreat یعنی خارج از اون ، قرار بدی :



public boolean saveas1(int type) {
byte[] buffer = null;
InputStream fIn = getBaseContext().getResources().openRawResource(
R.raw.zang1);
int size = 0;

try {
size = fIn.available();
buffer = new byte[size];
fIn.read(buffer);
fIn.close();
} catch (IOException e) {
return false;
}

String path = Environment.getExternalStorageDirectory().getPath( )
+ "/media/audio/ringtones/";

String filename = "zang1.mp3";

boolean exists = (new File(path)).exists();
if (!exists) {
new File(path).mkdirs();
}

FileOutputStream save;
try {
save = new FileOutputStream(path + filename);
save.write(buffer);
save.flush();
save.close();
} catch (FileNotFoundException e) {
return false;
} catch (IOException e) {
return false;
}

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
Uri.parse("file://" + path + filename)));

File k = new File(path, filename);

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, filename);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");

// This method allows to change Notification and Alarm tone also. Just
// pass corresponding type as parameter
if (RingtoneManager.TYPE_RINGTONE == type) {
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
} else if (RingtoneManager.TYPE_NOTIFICATION == type) {
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
} else if (RingtoneManager.TYPE_ALARM == type) {
values.put(MediaStore.Audio.Media.IS_ALARM, true);
}

Uri uri = MediaStore.Audio.Media.getContentUriForPath(k
.getAbsolutePath());
Uri newUri = Zang.this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(Zang.t his, type,
newUri);

// Insert it into the database
this.getContentResolver()
.insert(MediaStore.Audio.Media.getContentUriForPat h(k
.getAbsolutePath()), values);

return true;
}

حالا بعضی جاها توی این پست سیستم این انجمن خودش فاصله انداخته و نمیشه برداشتشون ! و توی ایکلیپس خطا میده و معلومن ! اونا رو فاصله هاشونو حذف کنید درست میشه
کد تست شده و بدرستی کار میکنه :لبخند:


سلام

برای این کد دسترسی های زیر باید اضافه بشه :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>

smemamian
پنج شنبه 16 مرداد 1393, 13:46 عصر
چرخش تصویر در محور مرکزی خودش :

باید کلاسی بسازید که از ImageView مشتق شده باشد:

public class RotateImageView extends ImageView {
private static Animation mRotation;
public boolean isAnimating = false;

public RotateImageView(Context context) {
super(context);
Init(null);
}

public RotateImageView(Context context, AttributeSet attrs) {
super(context, attrs);
Init(attrs);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public RotateImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
Init(attrs);
}

private void Init(AttributeSet attrs) {
startAnimation();
}

public void startAnimation() {
if(!isAnimating){
if (mRotation == null) {
mRotation = AnimationUtils.loadAnimation(getContext(), R.anim.rotate);
mRotation.setRepeatCount(Animation.INFINITE);
}
this.startAnimation(mRotation);
isAnimating = true;
}

}

public void stopAnimation() {
if (isAnimating){
mRotation.cancel();
isAnimating = false;
}
}

@Override
public void setVisibility(int visibility) {
if (visibility == GONE || visibility == INVISIBLE) {
this.clearAnimation();
} else if (visibility == VISIBLE) {
this.startAnimation(mRotation);
}
super.setVisibility(visibility);
}
}

سپس در پوشه anim یک فایل xml به نام rotate بسازید:



<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="5000"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="0"
android:toDegrees="360" />



سپس در فایل xml :

<yourpackage.RotateImageView
android:id="@+id/yourid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:src="@drawable/yourimage"
/>

سپس هرجا خواستید :

private static RotateImageView rotateimageview

rotateimageview = new RotateImageView(getActivity());

rotateimageview.stopAnimation();

or

rotateimageview.startAnimation();

نکته: در Fragmentها باید از getActivity استفاده کنید و در Activityها از this یا getApplicationContext .

zarabela
جمعه 17 مرداد 1393, 15:50 عصر
کد اشتراک گذاری عکس:

Bitmap bitmap;
OutputStream output;

bitmap=BitmapFactory.decodeResource(getResources() ,
com.example.ties.R.drawable.checkerboard_sare);

File filepath=Environment.getExternalStorageDirectory() ;

File dir=new File(filepath.getAbsolutePath()+"/Share_checkerboard/");
dir.mkdir();

final File file=new File(dir, "checkerboard_share");



ImageView iv=(ImageView) findViewById(com.example.ties.R.id.checkerboard_sh are);
iv.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
// TODO Auto-generated method stub
Bitmap bitmap;
OutputStream output;

// Retrieve the image from the res folder
bitmap = BitmapFactory.decodeResource(getResources(),
com.example.ties.R.drawable.checkerboard_sare);

// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();

// Create a new folder AndroidBegin in SD Card
File dir = new File(filepath.getAbsolutePath() + "/Share Image/");
dir.mkdirs();

// Create a name for the saved image
File file = new File(dir, "checkerboard.png");

try {

// Share Intent
Intent share = new Intent(Intent.ACTION_SEND);

// Type of file to share
share.setType("image/jpeg");

output = new FileOutputStream(file);

// Compress into png format image from 0% - 100%
bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
output.flush();
output.close();

// Locate the image to Share
Uri uri = Uri.fromFile(file);

// Pass the image into an Intnet
share.putExtra(Intent.EXTRA_STREAM, uri);

// Show the social share chooser list
startActivity(Intent.createChooser(share, "Share Image"));

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return;
}
});
};

abbasalim
جمعه 17 مرداد 1393, 22:17 عصر
تبدیل تاریخ میلادی قمری و شمسی به هم دیگه


package ir.esfandune.extera;

import java.util.Calendar;
import java.util.GregorianCalendar;


/**
* Title: Calender Conversion class
* Description: Convert Iranian (Jalali), Julian, and Gregorian dates to
* each other
* Public Methods Summary:
* -----------------------
* JavaSource_Calendar();
* JavaSource_Calendar(int year, int month, int day);
* int getIranianYear();
* int getIranianMonth();
* int getIranianDay();
* int getGregorianYear();
* int getGregorianMonth();
* int getGregorianDay();
* int getJulianYear();
* int getJulianMonth();
* int getJulianDay();
* String getIranianDate();
* String getGregorianDate();
* String getJulianDate();
* String getWeekDayStr();
* String toString();
* int getDayOfWeek();
* void nextDay();
* void nextDay(int days);
* void previousDay();
* void previousDay(int days);
* void setIranianDate(int year, int month, int day);
* void setGregorianDate(int year, int month, int day);
* void setJulianDate(int year, int month, int day);
*/
public class CalendarTool {

/**
* JavaSource_Calendar:
* The default constructor uses the current Gregorian date to initialize the
* other private memebers of the class (Iranian and Julian dates).
*/
public CalendarTool()
{
Calendar calendar = new GregorianCalendar();
setGregorianDate(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH)+1,
calendar.get(Calendar.DAY_OF_MONTH));
}

/**
* JavaSource_Calendar:
* This constructor receives a Gregorian date and initializes the other private
* members of the class accordingly.
* @param year int
* @param month int
* @param day int
*/
public CalendarTool(int year, int month, int day)
{
setGregorianDate(year,month,day);
}

/**
* getIranianYear:
* Returns the 'year' part of the Iranian date.
* @return int
*/
public int getIranianYear() {
return irYear;
}

/**
* getIranianMonth:
* Returns the 'month' part of the Iranian date.
* @return int
*/
public int getIranianMonth() {
return irMonth;
}

/**
* getIranianDay:
* Returns the 'day' part of the Iranian date.
* @return int
*/
public int getIranianDay() {
return irDay;
}

/**
* getGregorianYear:
* Returns the 'year' part of the Gregorian date.
* @return int
*/
public int getGregorianYear() {
return gYear;
}

/**
* getGregorianMonth:
* Returns the 'month' part of the Gregorian date.
* @return int
*/
public int getGregorianMonth() {
return gMonth;
}

/**
* getGregorianDay:
* Returns the 'day' part of the Gregorian date.
* @return int
*/
public int getGregorianDay() {
return gDay;
}

/**
* getJulianYear:
* Returns the 'year' part of the Julian date.
* @return int
*/
public int getJulianYear() {
return juYear;
}

/**
* getJulianMonth:
* Returns the 'month' part of the Julian date.
* @return int
*/
public int getJulianMonth() {
return juMonth;
}

/**
* getJulianDay()
* Returns the 'day' part of the Julian date.
* @return int
*/
public int getJulianDay() {
return juDay;
}

/**
* getIranianDate:
* Returns a string version of Iranian date
* @return String
*/
public String getIranianDate()
{
return (irYear+"/"+irMonth+"/"+irDay);
}

/**
* getGregorianDate:
* Returns a string version of Gregorian date
* @return String
*/
public String getGregorianDate()
{
return (gYear+"/"+gMonth+"/"+gDay);
}

/**
* getJulianDate:
* Returns a string version of Julian date
* @return String
*/
public String getJulianDate()
{
return (juYear+"/"+juMonth+"/"+juDay);
}

/**
* getWeekDayStr:
* Returns the week day name.
* @return String
*/
public String getWeekDayStr()
{
String weekDayStr[]={
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"};
return (weekDayStr[getDayOfWeek()]);
}

/**
* toString:
* Overrides the default toString() method to return all dates.
* @return String
*/
public String toString()
{
return (getWeekDayStr()+
", Gregorian:["+getGregorianDate()+
"], Julian:["+getJulianDate()+
"], Iranian:["+getIranianDate()+"]");
}


/**
* getDayOfWeek:
* Returns the week day number. Monday=0..Sunday=6;
* @return int
*/
public int getDayOfWeek()
{
return (JDN % 7);
}

/**
* nextDay:
* Go to next julian day number (JDN) and adjusts the other dates.
*/
public void nextDay()
{
JDN++;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}
/**
* nextDay:
* Overload the nextDay() method to accept the number of days to go ahead and
* adjusts the other dates accordingly.
* @param days int
*/
public void nextDay(int days)
{
JDN+=days;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* previousDay:
* Go to previous julian day number (JDN) and adjusts the otehr dates.
*/
public void previousDay()
{
JDN--;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* previousDay:
* Overload the previousDay() method to accept the number of days to go backward
* and adjusts the other dates accordingly.
* @param days int
*/
public void previousDay(int days)
{
JDN-=days;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* setIranianDate:
* Sets the date according to the Iranian calendar and adjusts the other dates.
* @param year int
* @param month int
* @param day int
*/
public void setIranianDate(int year, int month, int day)
{
irYear =year;
irMonth = month;
irDay = day;
JDN = IranianDateToJDN();
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* setGregorianDate:
* Sets the date according to the Gregorian calendar and adjusts the other dates.
* @param year int
* @param month int
* @param day int
*/
public void setGregorianDate(int year, int month, int day)
{
gYear = year;
gMonth = month;
gDay = day;
JDN = gregorianDateToJDN(year,month,day);
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* setJulianDate:
* Sets the date according to the Julian calendar and adjusts the other dates.
* @param year int
* @param month int
* @param day int
*/
public void setJulianDate(int year, int month, int day)
{
juYear = year;
juMonth = month;
juDay = day;
JDN = julianDateToJDN(year,month,day);
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

/**
* IranianCalendar:
* This method determines if the Iranian (Jalali) year is leap (366-day long)
* or is the common year (365 days), and finds the day in March (Gregorian
* Calendar)of the first day of the Iranian year ('irYear').Iranian year (irYear)
* ranges from (-61 to 3177).This method will set the following private data
* members as follows:
* leap: Number of years since the last leap year (0 to 4)
* Gy: Gregorian year of the begining of Iranian year
* march: The March day of Farvardin the 1st (first day of jaYear)
*/
private void IranianCalendar()
{
// Iranian years starting the 33-year rule
int Breaks[]=
{-61, 9, 38, 199, 426, 686, 756, 818,1111,1181,
1210,1635,2060,2097,2192,2262,2324,2394,2456,3178} ;
int jm,N,leapJ,leapG,jp,j,jump;
gYear = irYear + 621;
leapJ = -14;
jp = Breaks[0];
// Find the limiting years for the Iranian year 'irYear'
j=1;
do{
jm=Breaks[j];
jump = jm-jp;
if (irYear >= jm)
{
leapJ += (jump / 33 * 8 + (jump % 33) / 4);
jp = jm;
}
j++;
} while ((j<20) && (irYear >= jm));
N = irYear - jp;
// Find the number of leap years from AD 621 to the begining of the current
// Iranian year in the Iranian (Jalali) calendar
leapJ += (N/33 * 8 + ((N % 33) +3)/4);
if ( ((jump % 33) == 4 ) && ((jump-N)==4))
leapJ++;
// And the same in the Gregorian date of Farvardin the first
leapG = gYear/4 - ((gYear /100 + 1) * 3 / 4) - 150;
march = 20 + leapJ - leapG;
// Find how many years have passed since the last leap year
if ( (jump - N) < 6 )
N = N - jump + ((jump + 4)/33 * 33);
leap = (((N+1) % 33)-1) % 4;
if (leap == -1)
leap = 4;
}


/**
* IsLeap:
* This method determines if the Iranian (Jalali) year is leap (366-day long)
* or is the common year (365 days), and finds the day in March (Gregorian
* Calendar)of the first day of the Iranian year ('irYear').Iranian year (irYear)
* ranges from (-61 to 3177).This method will set the following private data
* members as follows:
* leap: Number of years since the last leap year (0 to 4)
* Gy: Gregorian year of the begining of Iranian year
* march: The March day of Farvardin the 1st (first day of jaYear)
*/
public boolean IsLeap(int irYear1)
{
// Iranian years starting the 33-year rule
int Breaks[]=
{-61, 9, 38, 199, 426, 686, 756, 818,1111,1181,
1210,1635,2060,2097,2192,2262,2324,2394,2456,3178} ;
int jm,N,leapJ,leapG,jp,j,jump;
gYear = irYear1 + 621;
leapJ = -14;
jp = Breaks[0];
// Find the limiting years for the Iranian year 'irYear'
j=1;
do{
jm=Breaks[j];
jump = jm-jp;
if (irYear1 >= jm)
{
leapJ += (jump / 33 * 8 + (jump % 33) / 4);
jp = jm;
}
j++;
} while ((j<20) && (irYear1 >= jm));
N = irYear1 - jp;
// Find the number of leap years from AD 621 to the begining of the current
// Iranian year in the Iranian (Jalali) calendar
leapJ += (N/33 * 8 + ((N % 33) +3)/4);
if ( ((jump % 33) == 4 ) && ((jump-N)==4))
leapJ++;
// And the same in the Gregorian date of Farvardin the first
leapG = gYear/4 - ((gYear /100 + 1) * 3 / 4) - 150;
march = 20 + leapJ - leapG;
// Find how many years have passed since the last leap year
if ( (jump - N) < 6 )
N = N - jump + ((jump + 4)/33 * 33);
leap = (((N+1) % 33)-1) % 4;
if (leap == -1)
leap = 4;
if (leap==4 || leap==0)
return true;
else
return false;

}



/**
* IranianDateToJDN:
* Converts a date of the Iranian calendar to the Julian Day Number. It first
* invokes the 'IranianCalender' private method to convert the Iranian date to
* Gregorian date and then returns the Julian Day Number based on the Gregorian
* date. The Iranian date is obtained from 'irYear'(1-3100),'irMonth'(1-12) and
* 'irDay'(1-29/31).
* @return long (Julian Day Number)
*/
private int IranianDateToJDN()
{
IranianCalendar();
return (gregorianDateToJDN(gYear,3,march)+ (irMonth-1) * 31 - irMonth/7 * (irMonth-7) + irDay -1);
}

/**
* JDNToIranian:
* Converts the current value of 'JDN' Julian Day Number to a date in the
* Iranian calendar. The caller should make sure that the current value of
* 'JDN' is set correctly. This method first converts the JDN to Gregorian
* calendar and then to Iranian calendar.
*/
private void JDNToIranian()
{
JDNToGregorian();
irYear = gYear - 621;
IranianCalendar(); // This invocation will update 'leap' and 'march'
int JDN1F = gregorianDateToJDN(gYear,3,march);
int k = JDN - JDN1F;
if (k >= 0)
{
if (k <= 185)
{
irMonth = 1 + k/31;
irDay = (k % 31) + 1;
return;
}
else
k -= 186;
}
else
{
irYear--;
k += 179;
if (leap == 1)
k++;
}
irMonth = 7 + k/30;
irDay = (k % 30) + 1;
}


/**
* julianDateToJDN:
* Calculates the julian day number (JDN) from Julian calendar dates. This
* integer number corresponds to the noon of the date (i.e. 12 hours of
* Universal Time). This method was tested to be good (valid) since 1 March,
* -100100 (of both calendars) up to a few millions (10^6) years into the
* future. The algorithm is based on D.A.Hatcher, Q.Jl.R.Astron.Soc. 25(1984),
* 53-55 slightly modified by K.M. Borkowski, Post.Astron. 25(1987), 275-279.
* @param year int
* @param month int
* @param day int
* @return int
*/
private int julianDateToJDN(int year, int month, int day)
{
return (year + (month - 8) / 6 + 100100) * 1461/4 + (153 * ((month+9) % 12) + 2)/5 + day - 34840408;
}

/**
* JDNToJulian:
* Calculates Julian calendar dates from the julian day number (JDN) for the
* period since JDN=-34839655 (i.e. the year -100100 of both calendars) to
* some millions (10^6) years ahead of the present. The algorithm is based on
* D.A. Hatcher, Q.Jl.R.Astron.Soc. 25(1984), 53-55 slightly modified by K.M.
* Borkowski, Post.Astron. 25(1987), 275-279).
*/
private void JDNToJulian()
{
int j= 4 * JDN + 139361631;
int i= ((j % 1461)/4) * 5 + 308;
juDay = (i % 153) / 5 + 1;
juMonth = ((i/153) % 12) + 1;
juYear = j/1461 - 100100 + (8-juMonth)/6;
}

/**
* gergorianDateToJDN:
* Calculates the julian day number (JDN) from Gregorian calendar dates. This
* integer number corresponds to the noon of the date (i.e. 12 hours of
* Universal Time). This method was tested to be good (valid) since 1 March,
* -100100 (of both calendars) up to a few millions (10^6) years into the
* future. The algorithm is based on D.A.Hatcher, Q.Jl.R.Astron.Soc. 25(1984),
* 53-55 slightly modified by K.M. Borkowski, Post.Astron. 25(1987), 275-279.
* @param year int
* @param month int
* @param day int
* @return int
*/
private int gregorianDateToJDN(int year, int month, int day)
{
int jdn = (year + (month - 8) / 6 + 100100) * 1461/4 + (153 * ((month+9) % 12) + 2)/5 + day - 34840408;
jdn = jdn - (year + 100100+(month-8)/6)/100*3/4+752;
return (jdn);
}
/**
* JDNToGregorian:
* Calculates Gregorian calendar dates from the julian day number (JDN) for
* the period since JDN=-34839655 (i.e. the year -100100 of both calendars) to
* some millions (10^6) years ahead of the present. The algorithm is based on
* D.A. Hatcher, Q.Jl.R.Astron.Soc. 25(1984), 53-55 slightly modified by K.M.
* Borkowski, Post.Astron. 25(1987), 275-279).
*/
private void JDNToGregorian()
{
int j= 4 * JDN + 139361631;
j = j + (((((4* JDN +183187720)/146097)*3)/4)*4-3908);
int i= ((j % 1461)/4) * 5 + 308;
gDay = (i % 153) / 5 + 1;
gMonth = ((i/153) % 12) + 1;
gYear = j/1461 - 100100 + (8-gMonth)/6;
}


private int irYear; // Year part of a Iranian date
private int irMonth; // Month part of a Iranian date
private int irDay; // Day part of a Iranian date
private int gYear; // Year part of a Gregorian date
private int gMonth; // Month part of a Gregorian date
private int gDay; // Day part of a Gregorian date
private int juYear; // Year part of a Julian date
private int juMonth; // Month part of a Julian date
private int juDay; // Day part of a Julian date
private int leap; // Number of years since the last leap year (0 to 4)
private int JDN; // Julian Day Number
private int march; // The march day of Farvardin the first (First day of jaYear)
} // End of Class 'JavaSource_Calendar

zarabela
شنبه 18 مرداد 1393, 00:09 صبح
گرفتن کد USSD :
Intent call=new Intent(Intent.ACTION_CALL);
call.setData(Uri.parse("tel:*140*1"+Uri.encode("#")));
startActivity(call);

smemamian
سه شنبه 21 مرداد 1393, 01:53 صبح
استفاده از 2 فونت الی بیشتر در یک TextView :


122174

دریافت (http://uplood.ir/eLwh)

توجه داشته باشید که فونت دلخواه رو در قسمت fonts بذارید.

sadeghi7
پنج شنبه 23 مرداد 1393, 20:57 عصر
سلام
میشه بیشتر توضیح بدین

saeedgholami
یک شنبه 26 مرداد 1393, 18:51 عصر
سلام دوستان زیاد پرسیدن که چجوری میشه به اکشن بار دکمه اضافه کرد من اموزشش رو گذاشتم فقط نمیدونم این اموزش تو سایت وجود داره یا نه؟؟

ابتدا باید ی فایل xml ایجاد کنید:


<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_share"
android:icon="@drawable/share"
android:title="@string/app_name"

android:showAsAction="ifRoom"/>

<item android:id="@+id/action_save"
android:icon="@drawable/save"
android:title="@string/app_name"

android:showAsAction="ifRoom"/>

</menu>


بعد تو اکتیویتی این کد را وارد میکنیم


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}


و برای اینه کاربر اگر انتخاب کرد کاری انجام دهد این قطعه کد را اضافه می کنیم


@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_share:
//این کار را انجام بده
break;

case R.id.action_save:
//این کار را انجام بده
break;
default:
return super.onOptionsItemSelected(item);
}
}


امیدوارم اموزش واسه دوستان مفید باشه

smemamian
دوشنبه 27 مرداد 1393, 10:12 صبح
اسکرول بالا و پایین اتوماتیکهمانند بازار.

این تابع در ابتدا یک بار فراخوانی کنید سپس با SP دیگه نذارید فراخوانی شود:

private void motionRightMenuJustOnce(){

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
mMenuDrawer.openMenu();
}
}, 800);


mList.postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
mList.setSelection(mAdapter.getCount() - 1);
}
}, 1300);

mList.postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
mList.setSelection(0);
}
}, 1500);

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
mMenuDrawer.closeMenu(true);
}
}, 2000);
}

ho3ein.3ven
دوشنبه 03 شهریور 1393, 13:59 عصر
اضافه کردن شماره جدید به contacts

فراخوانی :

Insert2Contacts(this, "hossein","09375552233");

توابع :

public static void Insert2Contacts(Context ctx, String nameSurname,
String telephone) {
if (!isTheNumberExistsinContacts(ctx, telephone)) {
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();

ops.add(ContentProviderOperation.newInsert(RawCont acts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null).build());
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, telephone).build());
ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,
rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, nameSurname)
.build());
try {
ContentProviderResult[] res = ctx.getContentResolver()
.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {

Log.d("d", e.getMessage());
}
}
}

public static boolean isTheNumberExistsinContacts(Context ctx,
String phoneNumber) {
Cursor cur = null;
ContentResolver cr = null;

try {
cr = ctx.getContentResolver();

} catch (Exception ex) {
Log.d("f", ex.getMessage());
}

try {
cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null,
null, null);
} catch (Exception ex) {
Log.i("f", ex.getMessage());
}

try {
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur
.getString(cur
.getColumnIndex(ContactsContract.Contacts.DISPLAY_ NAME));
// Log.i("Names", name);
if (Integer
.parseInt(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHON E_NUMBER))) > 0) {
// Query phone here. Covered next
Cursor phones = ctx
.getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONT ENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + id, null, null);
while (phones.moveToNext()) {
String phoneNumberX = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.P hone.NUMBER));
// Log.i("Number", phoneNumber);

phoneNumberX = phoneNumberX.replace(" ", "");
phoneNumberX = phoneNumberX.replace("(", "");
phoneNumberX = phoneNumberX.replace(")", "");
if (phoneNumberX.contains(phoneNumber)) {
phones.close();
return true;

}

}
phones.close();
}

}
}
} catch (Exception ex) {
Log.i("f", ex.getMessage());

}

return false;
}

دسترسی ها :

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

1yaram
سه شنبه 04 شهریور 1393, 16:07 عصر
افزودن میانبر در صفحه اول (HomeScreen): همزمان با اجرای برنامه
این کد رو تو اکتیویتی اصلی کپی کنید:


SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this );
if(!prefs.getBoolean("firstTime", false)) {
// <---- run your one time code here
Intent HomeScreenShortCut= new Intent(getApplicationContext(),
MainActivity.class);


HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
//shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "اسم برنامه");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESO URCE,
Intent.ShortcutIconResource.fromContext(getApplica tionContext(),
R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);

Toast.makeText(getApplicationContext(), "آیکن این برنامه برای دسترسی سریع در صفحه اصلی افزوده شد", Toast.LENGTH_LONG).show();

SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}

واینو تو منیفست پروژه:


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

saeed_g21
پنج شنبه 06 شهریور 1393, 23:13 عصر
همانطور که قول داده بودم
میلادی به شمسی


public class mTpDate { public String todayShamsi(int y,int m,int d) {


String year = ""+y;
String month = ""+m;
String day = ""+d;
int Y = Integer.valueOf(year);
int M = Integer.valueOf(month);
int D = Integer.valueOf(day);
return mTp(Y, M, D);
}


public String mTp(int Y, int M, int D)
{
int gDay,gMonth,gYear;
switch(M) {
case 1:
if(D <= 20){
M = 10;
D = D + 10;
}else{
M = 11;
D = D - 20;
}
break;
case 2:
if(D <= 19){
M = 11;
D = D + 11;
}else{
M = 12;
D = D -19;
}
break;
case 3:
if(D <= 20){
M = 12;
D = D + 9;
}else{
M = 1;
D = D - 20;
}
break;
case 4:
if(D <= 20 ){
M = 1;
D = D + 11;
}else{
M = 2;
D = D - 20;
}
break;
case 5:
if( D <= 21){
M = 2;
D = D + 10;
}else{
M = 3;
D = D - 21;
}
break;
case 6:
if(D <= 21){
M = 3;
D = D + 10;
}else{
M = 4;
D = D - 21;
}
break;
case 7:
if(D <= 22){
M = 4;
D = D + 9;
}else{
M = 5;
D = D - 22;
}
break;
case 8:
if(D <= 22){
M = 5;
D = D + 9;
}else{
M = 6;
D = D - 22;
}
break;
case 9:
if(D <= 22){
M = 6;
D = D + 9;
}else{
M = 7;
D = D - 22;
}
break;
case 10:
if(D <= 22){
M = 7;
D = D + 8;
}else{
M = 8;
D = D - 22;
}
break;
case 11:
if(D <= 21){
M = 8;
D = D + 9;
}else{
M = 9;
D = D - 21;
}
break;
case 12:
if(D <= 21 ){
M = 9;
D = D + 9 ;
}else{
M = 10;
D = D - 21;
}
break;
}


gDay = D;
gMonth = M;
gYear = Y-621+ (8-gMonth)/6;
return ""+gYear+ "/"+gMonth +"/"+gDay;
}
}



استفاده

mTpDate mtp = new mTpDate();
mTp.mTp(2014,08,28);

esideli
شنبه 15 شهریور 1393, 07:10 صبح
ساخت یک دایرکتوری (پوشه) توی sd card :


File myDirectory = new File(Environment.getExternalStorageDirectory().toS tring() +"/folderName/");
if(!myDirectory.exists()){
myDirectory.mkdirs();

دسترسی در مانیفست:




<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

esideli
شنبه 15 شهریور 1393, 07:27 صبح
کپی کردن تمام محتویات پوشه assets توی sd card مثالا برای استفاده در گالری که از sd card عکس هارو می خونه:
تمام محتویات پوشه assets توی folderName کپی میشه. اگه میخواین که محتویات توی هیچ پوشه ای نره بجای "/floderName/" ، "/" بزارید.


private void copyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
// Log.e("tag", e.getMessage());
}
for(String filename : files) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
out = new FileOutputStream(Environment.getExternalStorageDir ectory().toString() +"/folderName/" + filename);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
} catch(Exception e) {
// Log.e("tag", e.getMessage());
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}


دسترسی در مانیفست:



<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />




برای اجرا هم اون رو این طور به کار ببرید:



copyAssets();

esideli
شنبه 15 شهریور 1393, 09:49 صبح
افزودن میانبر در صفحه اول (HomeScreen): همزمان با اجرای برنامه
این کد رو تو اکتیویتی اصلی کپی کنید:


SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this );
if(!prefs.getBoolean("firstTime", false)) {
// <---- run your one time code here
Intent HomeScreenShortCut= new Intent(getApplicationContext(),
MainActivity.class);


HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
//shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "اسم برنامه");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESO URCE,
Intent.ShortcutIconResource.fromContext(getApplica tionContext(),
R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);

Toast.makeText(getApplicationContext(), "آیکن این برنامه برای دسترسی سریع در صفحه اصلی افزوده شد", Toast.LENGTH_LONG).show();

SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}

واینو تو منیفست پروژه:


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />


سلام
کدتون سه تا مشکل داره:
یکی اینکه بخاطر اینکه از SharedPreferences استفاده کردین، فقط یک بار شرتکات روی home screen می سازه و اگر کاربر اون رو از روی صفحه حذف کنه دیگه شرتکات جدید براش ساخته نمیشه.

یکی دیگه اینکه برای اینکه به SharedPreferences نیازی نباشه باید این کد رو بعد از تعریف intent قرار بدین که فقط یک شرتکات از برنامتون روی homme screen ساخته بشه و بیشتر نشه ولی اگه احیانا کاربر شرتکات رو حذف کرد، با اجرای دوباره برنامه یه شرتکات روی home screen می سازه:شیطان::


addIntent.putExtra("duplicate", false);


یکی دیگه اینکه نیازی به نوشتن این خط کد نبود:



HomeScreenShortCut.putExtra("duplicate", false);

saeed_g21
شنبه 15 شهریور 1393, 16:16 عصر
اینم تشخیص صحت کد ملی وارد شده:کف:



String codemeli = meli.getText().toString();
try
{
int num2 = Integer.valueOf(codemeli.substring(9, 10));
int num3 = ((((((((Integer.valueOf(codemeli.substring(0, 1)) * 10) + (Integer.valueOf(codemeli.substring(1, 2)) * 9)) + (Integer.valueOf(codemeli.substring(2, 3)) * 8)) + (Integer.valueOf(codemeli.substring(3,4 )) * 7)) + (Integer.valueOf(codemeli.substring(4,5 )) * 6)) + (Integer.valueOf(codemeli.substring(5,6 )) * 5)) + (Integer.valueOf(codemeli.substring(6,7 )) * 4)) + (Integer.valueOf(codemeli.substring(7,8 )) * 3)) + (Integer.valueOf(codemeli.substring(8, 9)) * 2);
int num4 = num3 - ((num3 / 11) * 11);
if ((((num4 == 0) && (num2 == num4)) || ((num4 == 1) && (num2 == 1))) || ((num4 > 1) && (num2 == Math.abs((int)(num4 - 11)))))
{
Toast.makeText(getApplicationContext(), "کد ملی صحیح می باشد", 1).show();
}
else
{
Toast.makeText(getApplicationContext(), "کد ملی نامعتبر است", 1).show();
}
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(), "لطفا یک عدد 10 رقمی وارد کنید", 1).show();
}

چون که خودم نیاز داشتم عجله ای نوشتم اگه نیاز بود خودتون مرتب کنید
اگه مشکلی داشتید در تاپیک دیگه بپرسید از پرسش در این تاپیک خودداری نمایید

1yaram
دوشنبه 17 شهریور 1393, 13:06 عصر
یکی دیگه اینکه برای اینکه به SharedPreferences نیازی نباشه باید این کد رو بعد از تعریف intent قرار بدین که فقط یک شرتکات از برنامتون روی homme screen ساخته بشه و بیشتر نشه ولی اگه احیانا کاربر شرتکات رو حذف کرد، با اجرای دوباره برنامه یه شرتکات روی home screen می سازه:شیطان::


addIntent.putExtra("duplicate", false);




اگه کسی خواست شورت کات رو حذف کنه و حذف نشه کاربر محترم میاد و چند تا فحش میده به برنامه نویسی که چرا شرت کاته حذف نمیشه و دست از سرم بر نمیداره:گیج:

s0heyl
دوشنبه 24 شهریور 1393, 20:27 عصر
کد نشان دادن وضعیت باتری به درصد :




private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override public void onReceive(Context ctxt, Intent intent) { int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); Log.d("Battery Level", String.valueOf(level) + "%"); } };

saeed_g21
پنج شنبه 10 مهر 1393, 17:29 عصر
میتونید بگید چطوری خروجی کد USSD رو تو برنامه بگیریم؟
بدون شرح...!

بگذریم

سلام خدمت دوستای عزیز

دوتا کد جالب و احتمالا پر مصرف!

پشتیبانگیری و بازیابی از دیتابیس



private void importDB() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String currentDBPath = "//data//" + "<package name>"
+ "//databases//" + "<database name>";
String backupDBPath = "<backup db filename>"; // From SD directory.
File backupDB = new File(data, currentDBPath);
File currentDB = new File(sd, backupDBPath);


FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Import Successful!",
Toast.LENGTH_SHORT).show();


}
} catch (Exception e) {


Toast.makeText(getApplicationContext(), "Import Failed!", Toast.LENGTH_SHORT)
.show();


}
}


private void exportDB() {
try {
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();


if (sd.canWrite()) {
String currentDBPath = "//data//" + "<package name>"
+ "//databases//" + "<db name>";
String backupDBPath = "<destination>";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);


FileChannel src = new FileInputStream(currentDB).getChannel();
FileChannel dst = new FileOutputStream(backupDB).getChannel();
dst.transferFrom(src, 0, src.size());
src.close();
dst.close();
Toast.makeText(getApplicationContext(), "Backup Successful!",
Toast.LENGTH_SHORT).show();


}
} catch (Exception e) {


Toast.makeText(getApplicationContext(), "Backup Failed!", Toast.LENGTH_SHORT)
.show();


}
}

saeed_g21
سه شنبه 15 مهر 1393, 13:44 عصر
کدی برای مخفی کردن ساعت و ... .
getWindow().getDecorView().setSystemUiVisibility(V iew.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(V iew.SYSTEM_UI_FLAG_LOW_PROFILE);

ahmad_201494
چهارشنبه 23 مهر 1393, 05:31 صبح
کد تست موجود بودن دوربین

Context context = this;
PackageManager packageManager = context.getPackageManager();

// if device support camera?
if (packageManager.hasSystemFeature(PackageManager.FE ATURE_CAMERA)) {
//yes
Log.i("camera", "This device has camera!");
}else{
//no
Log.i("camera", "This device has no camera!");
}

saeedgholami
جمعه 25 مهر 1393, 11:56 صبح
با سلام

این کد چند وقت پیش تو ی نرم افزار که درست میکردم بدردم خورد گذاشتم اینجا شاید بدرد دوستان بخوره

تشخیص اینکه گوشی کاربر عمومی(نرمال) هست یا ویبره یا سایلنت


AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVI CE);

switch (am.getRingerMode()) {
case AudioManager.RINGER_MODE_SILENT:
Log.i("MyApp","Silent mode");
break;
case AudioManager.RINGER_MODE_VIBRATE:
Log.i("MyApp","Vibrate mode");
break;
case AudioManager.RINGER_MODE_NORMAL:
Log.i("MyApp","Normal mode");
break;
}

darkenerboy
چهارشنبه 30 مهر 1393, 13:03 عصر
دوتا متد برای تبدیل Bitmap به Drawable و برعکس

public static Bitmap drawableToBitmap(Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
}

Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);

return bitmap;
}

public static Drawable bitmapToDrawable(Context context, Bitmap bitmap) {
return new BitmapDrawable(context.getResources(), bitmap);
}

darkenerboy
چهارشنبه 30 مهر 1393, 13:05 عصر
گرفتن MD5 یک رشته

public static String getMD5(String s) throws Exception {
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
}

darkenerboy
چهارشنبه 30 مهر 1393, 13:06 عصر
دوتا متد برای تبدیل Bitmap به String و برعکس

public static String BitMapToString(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String temp = Base64.encodeToString(b, Base64.DEFAULT);
return temp;
}

public static Bitmap StringToBitMap(String string) {
try {
byte[] encodeByte = Base64.decode(string, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length);
return bitmap;
} catch (Exception e) {
e.getMessage();
return null;
}
}

ahmad_201494
شنبه 03 آبان 1393, 15:32 عصر
اینم کد که ،صفحه اتوماتیک بره رو حالت افقی و دیگه هم تو حالت اجرا رو حالت عمودی نیاد یا بر عکس.
توی manifest بعد از اسم کلاس ، ایتو اضافه کن : android:screenOrientation="portrait"یا android:screenOrientation="landscape"
اینجوری مثلن :
<activity
android:name=".Main"
android:label="@string/app_name"
android:screenOrientation="portrait" >



اضافه کنم که اگه بغیر از main اکتیویتی های دیگری داشتید این قطعه کد رو به اونها هم اضافه کنید...
برای افقی

android:screenOrientation="landscape"
برای عمودی

android:screenOrientation="portrait"

باتشکر ازhosseinaryaiو _Developer_

abbasalim
شنبه 13 دی 1393, 21:35 عصر
سلام دوستان وقتتون بخیر
راستش من میخوام برای هر مرحله از بازیم یک تایمر بزارم که زمان 15 دقیقه رو نشون بده و ازش کم بشه تا صفر بشه و باقی ماجرا ...
مثلا 15:00 و شروع بشه به کم شدن تا صفر که شد 00:00 بازی تموم بشه..
لطفا دوستان عزیز و اساتید گرامی اگه میتونن کمکم کنن..

سلام
https://github.com/alexfu/CountDownView

esideli
شنبه 27 دی 1393, 01:54 صبح
چک کردن روت بودن گوشی بدون استفاده از هیچ لایبراری خارجی :

private static boolean isRooted() {
return findBinary("su");
}



public static boolean findBinary(String binaryName) {
boolean found = false;
if (!found) {
String[] places = {"/sbin/", "/system/bin/", "/system/xbin/", "/data/local/xbin/",
"/data/local/bin/", "/system/sd/xbin/", "/system/bin/failsafe/", "/data/local/"};
for (String where : places) {
if ( new File( where + binaryName ).exists() ) {
found = true;
break;
}
}
}
return found;
}

esideli
یک شنبه 12 بهمن 1393, 00:15 صبح
درخواست حذف یک برنامه (البته کاربر برای حذف باید ok رو بزنه) :

Uri packageURI = Uri.parse("package:"+"some.package.to.remove");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);

Aram0630
چهارشنبه 29 بهمن 1393, 20:05 عصر
دوستان سلام
من imageButton گذاشتم که وقتی روش کلیک میشه کاربر بتونه نرم افزار رو با بلوتوث بفرسته .
اما ارور میده . میشه بگین کجای کدهام اشتباهه ؟



package com.aram0630.azmayesh;

import java.io.File;


import android.app.Activity;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;


public class Share extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.share);

ImageButton imgbtn1=(ImageButton) findViewById(R.id.imageButton1);
imgbtn1.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
// TODO Auto-generated method stub
try {


PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/vnd.android.package-archive");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
startActivity(Intent.createChooser(share, "PersianCoders"));
} catch (Exception e) {
Log.e("ShareApp", e.getMessage());
}

}




تو خط های 42 و 16 به { } گیر میده

sz1370
دوشنبه 04 اسفند 1393, 11:09 صبح
سلام مهندسین گرامی.. ممنون از کدهای مفیدتون . من دنبال یک شمارشگر معکوس زمان و تاریخم .. از زمان و تاریخ گوشی استفاده کنه و تا سال بعد تا روز تولدم بشماره... کسی می تونه کمکم کنه؟

samanmari
سه شنبه 05 اسفند 1393, 11:27 صبح
استفاده از 2 فونت الی بیشتر در یک TextView :


122174

دریافت (http://uplood.ir/eLwh)

توجه داشته باشید که فونت دلخواه رو در قسمت fonts بذارید.

فایل مورد نظر یافت نشد!

peymanf11
جمعه 08 اسفند 1393, 23:20 عصر
ساخت یک دایرکتوری (پوشه) در مسیر ایجاد شده برنامه :


String dirPath = getFilesDir().getAbsolutePath() + File.separator + "newfoldername";

File projDir = new File(dirPath);
if (!projDir.exists())
projDir.mkdirs();

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:20 صبح
متد چک کردن وضعیت اینترنت


public static boolean isConnectingToInternet(Context context) {
ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERV ICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
return true;
}
return false;
}


دسترسی مورد نیاز
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />



این کد اینترنت رو چک نمیکنه. فقط ارتباط با شبکه مثل وای فایل و 3g اینا رو چک میکنه یعنی ابزارهای موجود برای ارتباط با اینترنت. از این کد استفاده کنید



/**
* Return True if host name address is reachable in <b>timeoutMill</b> mili seceond else False
*/
public static boolean isInternetAvailable(int timeoutMill) {
try {
if (InetAddress.getByName((String) UC.getHostName()).isReachable(timeoutMill)) {
return true;
}
return false;
}
catch (Exception e) {
return false;
}
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:21 صبح
سلام
در برنامه نوسی اندروید
ایا میشه به جای متن
یه pdf روکه قبلا داریم گذاشت؟؟؟


این تاپیک جای پرسش نیست جای دیگه مطرح کنید. لطفا تاپیک رو به هم نزدید ممنون

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:24 صبح
چک کردن روت بودن گوشی بدون استفاده از هیچ لایبراری خارجی :

این کد راحت تر هستش به نظرم


public static boolean checkPhoneIsRooted() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(
process.getOutputStream());
os.writeBytes("exit");
os.flush();
process.waitFor();
int i = process.exitValue();
if (i == 0)
return true;
else
return false;
}
catch (Exception e) {}
return false;
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:25 صبح
این کد آدرس آی پی تونو برمیگردونه


public String getLocalIPAddress() throws SocketException {
Enumeration<NetworkInterface> nics = NetworkInterface
.getNetworkInterfaces();
while (nics.hasMoreElements()) {
NetworkInterface intf = nics.nextElement();
Enumeration<InetAddress> addrs = intf.getInetAddresses();
while (addrs.hasMoreElements()) {
InetAddress addr = addrs.nextElement();
if ( !addr.isLoopbackAddress()) {
return (addr.getHostAddress().toString());
}
}
}
return (null);
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:26 صبح
این کد چک میکنه SD کارت گوشی mount شده یا نه. ازش برای چک کردن وجود SD کارت هم میشه استفاده کرد


public static boolean checkMountedSDCard() {
if ( !Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED))
return false;
return true;
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:27 صبح
این کد متنی رو برای ارسال sms آماده میکنه. متن رو به برنامه پیامک میفرسته که میتونید بدون کپی کردن متن ازش استفاده کنید

public void sendTextAsSMS(String message) {
Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.putExtra("sms_body", message);
smsIntent.setType("vnd.android-dir/mms-sms");
startActivity(smsIntent);
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:28 صبح
این برنامه یه شورتکات از برنامتون تو دسکتاپ میندازه


public static void addAppicationIconOnDesktop(Context context) {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(context);
if ( !prefs.getBoolean("firstTime", false)) {
Intent HomeScreenShortCut = new Intent(context, ActivityMain.class);
HomeScreenShortCut.setAction(Intent.ACTION_MAIN);
HomeScreenShortCut.putExtra("duplicate", false);
// shortcutIntent is added with addIntent
Intent addIntent = new Intent();
addIntent
.putExtra(Intent.EXTRA_SHORTCUT_INTENT, HomeScreenShortCut);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME,
getStr(R.string.app_name));
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESO URCE,
Intent.ShortcutIconResource.fromContext(context,
R.drawable.tsms_icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(addIntent);

Toast.makeText(context, R.string.added_icon_to_desktop,
Toast.LENGTH_LONG).show();

SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:29 صبح
این کد چک میکنه کاری که شما میخوایید انجام بدید و نیاز به سطح دسترسی داره رو چک میکنه. اینکه شما الان دسترسی لازم رو اعمال کردید یا نه؟

public static boolean hasPermissions(Context context, String... permissions) {
for (String p: permissions)
if (context.checkCallingOrSelfPermission(p) == PackageManager.PERMISSION_DENIED)
return false;
return true;
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:30 صبح
این کد فیلد اول و فیلد انتهایی از یه List رو بر میگردونه


public static final class Lists {

private Lists() {}
public static <T> T getFirst(List<T> list) {
return list != null && !list.isEmpty() ? list.get(0) : null;
}
public static <T> T getLast(List<T> list) {
return list != null && !list.isEmpty() ? list.get(list.size() - 1)
: null;
}
}

tux-world
پنج شنبه 03 اردیبهشت 1394, 10:31 صبح
این کد چک میکنه عددی که وارد شده صحیح وارد شده یا نه. منظور اینه که مقدار ورودی باید عدد باشه نه حروف قاتی شده باهاش


public static boolean isNumeric(String str) {
return str.matches("-?\\d+(\\.\\d+)?"); // match a number with optional
// '-' and decimal.
}

majid_7
دوشنبه 07 اردیبهشت 1394, 09:10 صبح
سلام
خدمت تمامی دوستان و اساتید
اگه ممکنه برخی از کدها رو که عمومیت ندارند(استفاده های خاص دارند) بگید که چکار میکنند و به چه دردی میخورند؟
من تازه کارم و خیلی از این کدها رو اصلا نمیدونم واسه چی کاربرد دارند!
ببخشید که بدجایی عنوان کردم ولی حس کردم لازمه!

tux-world
سه شنبه 08 اردیبهشت 1394, 08:26 صبح
همانطور که قول داده بودم
میلادی به شمسی


کدتون بهینه نیست. ضمن اینکه کبیسه رو چطور حساب کردید؟

Naser-Cs
یک شنبه 10 خرداد 1394, 11:27 صبح
مرسی بابت لینک
خیلی سایت خوبی معرفی کردی متشکرم واقعا آموزش (http://appinapps.com/)های عالی بود ممنونم

rainbow17
پنج شنبه 28 خرداد 1394, 22:39 عصر
ممنون خیلی عالی

ehsanh22
سه شنبه 23 تیر 1394, 12:51 عصر
اجرای یک دیالوگ یا ... فقط برای بار اول بعد از نصب برنامه


public class MyActivity extends Activity {

public static final String PREFS_NAME = "MyPrefsFile";


@Override
protected void onCreate(Bundle state){


super.onCreate(state);
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean dialogShown = settings.getBoolean("dialogShown", false);


if (!dialogShown) {
// AlertDialog code here


SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("dialogShown", true);
editor.commit();
}
}

ahmad_201494
پنج شنبه 25 تیر 1394, 13:55 عصر
سلام...
این هم کد روشن و خاموش کردن دیتا اینترنت تو API 20 و پایین تر. که state میتونه true یا false باشه.

ConnectivityManager dataManager;
dataManager = (ConnectivityManager)this.context1.getSystemServic e(Context.CONNECTIVITY_SERVICE);
Method dataMtd = null;
try {
dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
} catch (NoSuchMethodException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
dataMtd.setAccessible(true);
try {
dataMtd.invoke(dataManager, state);
} catch (IllegalArgumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (InvocationTargetException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


این ها رو هم به مینفست اضافه کنید.
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>

peymanf11
یک شنبه 28 تیر 1394, 08:52 صبح
انتقال فایل به پوشه assest


private void copyAssets() {
AssetManager assetManager = getAssets();
String[] files = null;
try {
files = assetManager.list("");
} catch (IOException e) {
Log.e("tag", "Failed to get asset file list.", e);
}
for(String filename : files) {
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open(filename);
File outFile = new File(getExternalFilesDir(null), filename);
out = new FileOutputStream(outFile);
copyFile(in, out);
} catch(IOException e) {
Log.e("tag", "Failed to copy asset file: " + filename, e);
}
finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// NOOP
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
// NOOP
}
}
}
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}

sina_sarv
پنج شنبه 22 مرداد 1394, 11:46 صبح
سلام دوست عزیز
توی قسمت ایف اگه دستوری بنویسیم اجرا نمی کنه مثلا من برای افزایش صدا دستور رفتن به یک اکتیویتی دیگر رو گزاشتم اجرا نکرد
می تونین کمکم کنین
ممنون از پستتون.



@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (event.getAction() == KeyEvent.ACTION_UP) {
// Dogme Afzayeshe Seda
Intent intt = new Intent(MainActivity.this, Activity2.class);
startActivity(intt);
}
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
if (event.getAction() == KeyEvent.ACTION_UP) {
//Dogme Kaheshe Seda
}
return true;
}
return super.dispatchKeyEvent(event);
}

shab.salami@gmail.com
دوشنبه 02 شهریور 1394, 19:35 عصر
به نظر من باید از SharedPreferences استفاده کرد ،تا حتی اگه کاربر از روی صفحه میانبر حذف کرد مزاحمتی ایجاد نکنه برای کاربر.:لبخندساده:

hetboAvenger
جمعه 06 شهریور 1394, 14:36 عصر
استفاده از 2 فونت الی بیشتر در یک TextView :


122174

دریافت (http://uplood.ir/eLwh)

توجه داشته باشید که فونت دلخواه رو در قسمت fonts بذارید.


فایل مورد نظر یافت نشد

ali_khodayar
دوشنبه 06 مهر 1394, 11:04 صبح
کد راه اندازی مجدد برنامه





Intent mStartActivity = new Intent(context, StartActivity.class);int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(context, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager)context.getSystemService(Context.ALA RM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent); System.exit(0);


Intent mStartActivity =newIntent(context,StartActivity.class);
int mPendingIntentId =123456;
PendingIntent mPendingIntent =PendingIntent.getActivity(context, mPendingIntentId, mStartActivity,PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr =(AlarmManager)context.getSystemService(Context.AL ARM_SERVICE);
mgr.set(AlarmManager.RTC,System.currentTimeMillis( )+100, mPendingIntent);
System.exit(0);


بجای StartActivity ، اکتیویتی شروع برنامه رو قرار بدید. .


فقط نمیدونم چرا درست نمایش نمیده . به صورت کد HTML میشه

saeed_g21
یک شنبه 10 آبان 1394, 15:12 عصر
سلام دوستان

پیدا کردن فاصله با استفاده از Long, Lat بین دو Point

public static float Fasele( final double Lat_b, final double Long_b,final Context ctx ) {
double Lat_a = Point(ctx)[0];
double Long_a = Point(ctx)[1];
double earthRadius = 3958.75;
double latDiff = Math.toRadians(Lat_b-Lat_a);
double lngDiff = Math.toRadians(Long_b-Long_a);
double a = Math.sin(latDiff /2) * Math.sin(latDiff /2) +
Math.cos(Math.toRadians(Lat_a)) * Math.cos(Math.toRadians(Lat_b)) *
Math.sin(lngDiff /2) * Math.sin(lngDiff /2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double distance = earthRadius * c;


int meterConversion = 1609;
return new Float(distance * meterConversion).floatValue();


}

barnamenevisjavan
یک شنبه 08 فروردین 1395, 10:08 صبح
درج متغیر بین متن :
مثال : چه خبره؟ توی نسخه X
توسط این کد میتونیم مقدار X رو تغییر بدیم
--
اول از همه توی فایل strings در مسیر res/values یه متغیر ایجاد کنید
<string name="versiontitle">توی نسخه %1$s چه خبره؟</string>
هرکجا که نیاز بود متغییر توسط کدنویسی تغییر کنه باید از این نشانه استفاده کنید %1$s
حالا توی کد نویسی جاوا هم:
//version=1
String version;
String news = String.format(getResources().getString(R.string.ve rsiontitle),version);


نتیجه : چه خبره؟ توی نسخه 1

saeed_g21
یک شنبه 23 خرداد 1395, 22:59 عصر
کلاس کار با تاریخ


import java.util.Calendar;import java.util.GregorianCalendar;


public class PersianDate {
private int irYear; // Year part of a Iranian date
private int irMonth; // Month part of a Iranian date
private int irDay; // Day part of a Iranian date
private int gYear; // Year part of a Gregorian date
private int gMonth; // Month part of a Gregorian date
private int gDay; // Day part of a Gregorian date
private int juYear; // Year part of a Julian date
private int juMonth; // Month part of a Julian date
private int juDay; // Day part of a Julian date
private int leap; // Number of years since the last leap year (0 to 4)
private int JDN; // Julian Day Number
private int march; // The march day of Farvardin the first (First day of jaYear)


public PersianDate(){
Calendar calendar = new GregorianCalendar();
setGregorianDate(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH)+1,
calendar.get(Calendar.DAY_OF_MONTH));
}

public PersianDate(int year, int month, int day){
setGregorianDate(year,month,day);
}


public int getIranianYear() {
return irYear;
}

public int getIranianMonth() {
return irMonth;
}

public int getIranianDay() {
return irDay;
}

public int getGregorianYear() {
return gYear;
}

public int getGregorianMonth() {
return gMonth;
}


public int getGregorianDay() {
return gDay;
}

public int getJulianYear() {
return juYear;
}

public int getJulianMonth() {
return juMonth;
}

public int getJulianDay() {
return juDay;
}

public String getIranianDate(){
String Year,Month,Day;

Year = String.valueOf(irYear).substring(2, 4);

if(irMonth < 10){
Month = "0"+String.valueOf(irMonth);

}else{
Month = String.valueOf(irMonth);
}

if(irDay < 10){
Day = "0"+String.valueOf(irDay);

}else{
Day = String.valueOf(irDay);
}

return (Year+""+Month+""+Day);
}

public String getGregorianDate(){
return (gYear+"/"+gMonth+"/"+gDay);
}

public String getJulianDate(){
return (juYear+"/"+juMonth+"/"+juDay);
}

public String getWeekDayStr(){
String weekDayStr[]={
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"};
return (weekDayStr[getDayOfWeek()]);
}

public String toString(){
return (getWeekDayStr()+", Gregorian:["+getGregorianDate()+"], Julian:["+getJulianDate()+"], Iranian:["+getIranianDate()+"]");
}

public int getDayOfWeek(){
return (JDN % 7);
}

public void nextDay(){
JDN++;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void nextDay(int days){
JDN+=days;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void previousDay(){
JDN--;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void previousDay(int days){
JDN-=days;
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void setIranianDate(int year, int month, int day){
irYear =year;
irMonth = month;
irDay = day;
JDN = IranianDateToJDN();
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void setGregorianDate(int year, int month, int day){
gYear = year;
gMonth = month;
gDay = day;
JDN = gregorianDateToJDN(year,month,day);
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

public void setJulianDate(int year, int month, int day){
juYear = year;
juMonth = month;
juDay = day;
JDN = julianDateToJDN(year,month,day);
JDNToIranian();
JDNToJulian();
JDNToGregorian();
}

private void IranianCalendar(){
// Iranian years starting the 33-year rule
int Breaks[]={-61, 9, 38, 199, 426, 686, 756, 818,1111,1181,1210,1635,2060,2097,2192,2262,2324,2 394,2456,3178} ;
int jm,N,leapJ,leapG,jp,j,jump;
gYear = irYear + 621;
leapJ = -14;
jp = Breaks[0];
// Find the limiting years for the Iranian year 'irYear'
j=1;
do{
jm=Breaks[j];
jump = jm-jp;
if (irYear >= jm){
leapJ += (jump / 33 * 8 + (jump % 33) / 4);
jp = jm;
}
j++;
} while ((j<20) && (irYear >= jm));
N = irYear - jp;
// Find the number of leap years from AD 621 to the begining of the current
// Iranian year in the Iranian (Jalali) calendar
leapJ += (N/33 * 8 + ((N % 33) +3)/4);
if ( ((jump % 33) == 4 ) && ((jump-N)==4))
leapJ++;
// And the same in the Gregorian date of Farvardin the first
leapG = gYear/4 - ((gYear /100 + 1) * 3 / 4) - 150;
march = 20 + leapJ - leapG;
// Find how many years have passed since the last leap year
if ( (jump - N) < 6 )
N = N - jump + ((jump + 4)/33 * 33);
leap = (((N+1) % 33)-1) % 4;
if (leap == -1)
leap = 4;
}

public boolean IsLeap(int irYear1){
// Iranian years starting the 33-year rule
int Breaks[]=
{-61, 9, 38, 199, 426, 686, 756, 818,1111,1181,
1210,1635,2060,2097,2192,2262,2324,2394,2456,3178} ;
int jm,N,leapJ,leapG,jp,j,jump;
gYear = irYear1 + 621;
leapJ = -14;
jp = Breaks[0];
// Find the limiting years for the Iranian year 'irYear'
j=1;
do{
jm=Breaks[j];
jump = jm-jp;
if (irYear1 >= jm){
leapJ += (jump / 33 * 8 + (jump % 33) / 4);
jp = jm;
}
j++;
} while ((j<20) && (irYear1 >= jm));
N = irYear1 - jp;
// Find the number of leap years from AD 621 to the begining of the current
// Iranian year in the Iranian (Jalali) calendar
leapJ += (N/33 * 8 + ((N % 33) +3)/4);
if ( ((jump % 33) == 4 ) && ((jump-N)==4))
leapJ++;
// And the same in the Gregorian date of Farvardin the first
leapG = gYear/4 - ((gYear /100 + 1) * 3 / 4) - 150;
march = 20 + leapJ - leapG;
// Find how many years have passed since the last leap year
if ( (jump - N) < 6 )
N = N - jump + ((jump + 4)/33 * 33);
leap = (((N+1) % 33)-1) % 4;
if (leap == -1)
leap = 4;
if (leap==4 || leap==0)
return true;
else
return false;

}

public int IranianDateToJDN(){
IranianCalendar();
return (gregorianDateToJDN(gYear,3,march)+ (irMonth-1) * 31 - irMonth/7 * (irMonth-7) + irDay -1);
}

private void JDNToIranian(){
JDNToGregorian();
irYear = gYear - 621;
IranianCalendar(); // This invocation will update 'leap' and 'march'
int JDN1F = gregorianDateToJDN(gYear,3,march);
int k = JDN - JDN1F;
if (k >= 0){
if (k <= 185){
irMonth = 1 + k/31;
irDay = (k % 31) + 1;
return;
}else
k -= 186;
}else{
irYear--;
k += 179;
if (leap == 1)
k++;
}
irMonth = 7 + k/30;
irDay = (k % 30) + 1;
}

private int julianDateToJDN(int year, int month, int day){
return (year + (month - 8) / 6 + 100100) * 1461/4 + (153 * ((month+9) % 12) + 2)/5 + day - 34840408;
}

private void JDNToJulian(){
int j= 4 * JDN + 139361631;
int i= ((j % 1461)/4) * 5 + 308;
juDay = (i % 153) / 5 + 1;
juMonth = ((i/153) % 12) + 1;
juYear = j/1461 - 100100 + (8-juMonth)/6;
}

private int gregorianDateToJDN(int year, int month, int day){
int jdn = (year + (month - 8) / 6 + 100100) * 1461/4 + (153 * ((month+9) % 12) + 2)/5 + day - 34840408;
jdn = jdn - (year + 100100+(month-8)/6)/100*3/4+752;
return (jdn);
}

private void JDNToGregorian(){
int j= 4 * JDN + 139361631;
j = j + (((((4* JDN +183187720)/146097)*3)/4)*4-3908);
int i= ((j % 1461)/4) * 5 + 308;
gDay = (i % 153) / 5 + 1;
gMonth = ((i/153) % 12) + 1;
gYear = j/1461 - 100100 + (8-gMonth)/6;
}


}

hojat ghasemi
دوشنبه 15 خرداد 1396, 21:52 عصر
این هم کد تبدیل یک متغیر از نوع Drawable به Bitmap :





public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = null;

if (drawable instanceof BitmapDrawable) {
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
if (bitmapDrawable.getBitmap() != null) {
return bitmapDrawable.getBitmap();
}
}

if (drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {
bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel
} else {
bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
}

Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}




مهمترین مورد استفاده ی این کد در زمانی است که بخواهید یک drawable را در یک appwidget یا یک notification نشان بدهید.(چون در آن صورت فقط می تونید از imageview استفاده کنید که اون هم فقط bitmap رو قبول می کنه.:لبخند:)

hadivf
یک شنبه 17 اردیبهشت 1402, 02:47 صبح
سلام دوستان

پیدا کردن فاصله با استفاده از Long, Lat بین دو Point

public static float Fasele( final double Lat_b, final double Long_b,final Context ctx ) {
double Lat_a = Point(ctx)[0];
double Long_a = Point(ctx)[1];
double earthRadius = 3958.75;
double latDiff = Math.toRadians(Lat_b-Lat_a);
double lngDiff = Math.toRadians(Long_b-Long_a);
double a = Math.sin(latDiff /2) * Math.sin(latDiff /2) +
Math.cos(Math.toRadians(Lat_a)) * Math.cos(Math.toRadians(Lat_b)) *
Math.sin(lngDiff /2) * Math.sin(lngDiff /2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double distance = earthRadius * c;


int meterConversion = 1609;
return new Float(distance * meterConversion).floatValue();


}

سلام این کد با تغییر زون مشکل پیدا نمی کنه
یعنی زون به زون مثلا زون ۳۸ تا ۴۰ رو هم میتونه صحیح محاسبه کنه؟
من از توابع مثلثاتی و فیثاغورث استفاده میکنم اما تو زون ها و به دلیل کروی بودن زمین در فواصل بیش از ۱۰۰ کیلومتر و زون به زون به مشکل خوردم
اگر کسی اطلاعاتی در این زمینه داره لطفا دریغ نکنه

hadivf
یک شنبه 09 اردیبهشت 1403, 09:05 صبح
زاویه رو هم میدونی چجوری میشه محاسبه کرد
البته در فاصله های بیش از ۱۰۰ کیلومتر و یا در زون های هم جوار
یعنی مثلا نقطه الف در زون ۳۸ هستش و نقطه ب در زون ۳۹