Android平常用到的小工具
16lz
2021-01-23
问题 | 解决方案: |
EditText 设置背景为空 | Android:backGround = "@null" |
全屏显示 | 注:要在setContentView()前使用 requestWindowFeature(Window.FEATURE_NO_TITLE); //隐藏标题 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); //设置全屏 |
开启程序横屏显示 | 方法一:在Androidmanifest里设置如下: android:screenOrientation="landscape" 方法二:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); |
\\fileserver\Share\Public | |
setTheme(android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); | |
实现图片平铺效果 | <?xml version ="1.0" encoding ="utf-8" ?> <bitmap xmlns:android ="http://schemas.android.com/apk/res/android" android:src=\'#\'" /pattern" android:tileMode ="repeat" /> |
将键盘上的回车键改为搜索键 | android:imeOptions="actionSearch" |
ListView 设置字体颜色 | android:cacheColorHint="#00FF0000" 设置阴影色 |
Sharepreferences | 存储类型 (boolean、int、float、long和String)键值对方式 |
listView .setCacheColorHint(0); | |
GridView 设置点击效果透明 | personal_gridview.setSelector(R.drawable.transparent); |
背景色平铺 | <?xml version ="1.0" encoding ="utf-8" ?> <bitmap xmlns:android ="http://schemas.android.com/apk/res/android" android:src=\'#\'" /more_bg" android:tileMode ="repeat" /> |
分享微博 系统自带 | Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("text/plain");// 分享的数据类型 intent.putExtra(Intent.EXTRA_SUBJECT, "打电话");//主题 intent.putExtra(Intent.EXTRA_TEXT,"android拨打电话");// 内容 startActivity(Intent.createChooser(intent, "拨打电话"));//目标应 用选择对话框的标题 |
在mainFinest里面设置activity风格 | android:theme="@android:style/Theme.Dialog" |
android popupwindow | |
设置按钮与图片位置 | android:drawableLeft="@drawable/friend_dot" |
使程序高清 | <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> |
获取相册uri并转为 绝对路径 | Uri uri = data.getData(); ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query(uri, null, null, null, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getColumnCount(); i++) { Log.i("URI", i + "-----------------" + cursor.getString(i)); } String ImagePath = cursor.getString(cursor.getColumnIndex("_data")); |
关于相册 | String status=Environment.getExternalStorageState(); status.equals(Environment.MEDIA_MOUNTED)// 判断是否有sd卡 Intent i = new Intent("android.media.action.IMAGE_CAPTURE");//调用系统照相功能 startActivityForResult(i, TAKEPHOTO); Intent intent = new Intent(Intent.ACTION_GET_CONTENT); //从相册中取 intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); instance.startActivityForResult(Intent.createChooser( intent, "选择图片"), TAKEPICTURE); |
UUID+ 设备号序列号 唯一识别码(不可变) | private String getMyUUID(){ final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); final String tmDevice, tmSerial, tmPhone, androidId; tmDevice = "" + tm.getDeviceId(); tmSerial = "" + tm.getSimSerialNumber(); androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(),android.provider.Settings.Secure.ANDROID_ID); UUID deviceUuid = new UUID(androidId.hashCode(), ((long)tmDevice.hashCode() << 32) | tmSerial.hashCode()); String uniqueId = deviceUuid.toString(); Log.d("debug","uuid="+uniqueId); return uniqueId; } |
java 获取可变UUID | private String getMyUUID(){ UUID uuid = UUID.randomUUID(); String uniqueId = uuid.toString(); Log.d("debug","----->UUID"+uuid); return uniqueId; } |
获取sim卡信息 | getLine1Number() :获取到手机号码; getDeviceSoftwareVersion:获取到Android操作系统的版本; getSimSerialNumber:获取到SIM卡唯一编号ID; getSubscriberId:获取到客户ID,即IMSI; |
获取Gmail方法 | privateString getGmail() { String userName = null; Cursor userCursor = getContentResolver().query(Uri.parse(URL), null, null, null, null); if (userCursor.getCount() > 0) { userCursor.moveToFirst(); userName = userCursor.getString(userCursor.getColumnIndex("name")); Log.i("QQ", userName); } if (userName.equals("mycalendar")) { userName = ""; } return userName; } |
Spinner 设置默认选项 | spinner1.setSelection(1); |
在activity清单中 | android:windowSoftInputMode="adjustPan" 是配置界面不被键盘挤上去的 android:windowSoftInputMode="stateAlwaysHidden" 不弹出键盘 |
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); | |
将editText 输入完后键盘确定键变为搜索 | search_edit.setOnEditorActionListener(new OnEditorActionListener() {// @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Toast.makeText(instance," 搜索",Toast.LENGTH_SHORT).show(); InputMethodManager mInputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); mInputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), 0); return false; } }); android:imeOptions="actionSearch" |
RelativeLayout 属性 | 熟练掌握以下重要属性,并灵活运用: android:layout_centerInParent 居中布局 android:layout_centerVertical 水平居中布局 android:layout_centerHorizontal 垂直居中布局 android:layout_alignParentTop 居于容器内顶部 android:layout_alignParentBottom 居于容器内底部 android:layout_alignParentLeft 居于容器内左边 android:layout_alignParentRight 居于容器内右边 android:layout_above 居于指定View的上方 android:layout_below 居于指定View的下方 android:layout_toRightOf 在指定View的右边 android:layout_toLeftOf 在指定View的左边 android:layout_alignTop 与指定View的Top一致 |
Intent 传递参数 | 第一个activity Intent intent = new Intent(); intent.putExtra("key","value"); intent.setClass(a.this,b.class); startActivity(intent); 第二个Activity Intent intent = getIntent(); intent.getStringExtra("key"); |
古宁给的,判断系统是否有发邮件的包 | public boolean checkApkExist(Context context, String packageName) { if (packageName == null || "".equals(packageName)) return false; try { ApplicationInfo info = context.getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); if (info != null) { return true; } return false; } catch (NameNotFoundException e) { return false; } } |
防止EditText自动获得焦点 | 方法一:android:focusableInTouchMode="true"方法二: 或者在oncreate中加入下列代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);//防止editText自动获得家电 |
获取屏幕宽度和高度 | // 取得窗口属性 getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); //获得当前屏幕的高 screen_height = displayMetrics.heightPixels; //获得当前屏幕的宽 screen_width = displayMetrics.widthPixels; |
intent 传递bitmap | Intent intent = getIntent(); Bitmap myBitmap = (Bitmap) intent.getParcelableExtra("tupian"); imageView.setImageBitmap(myBitmap); Intent 的使用,在intent中有一种方法getSerializableExtra()用来接收一系列的数据,比如ArrayList里的数据 |
NumberFormatException 数字格式遗产 | |
闹铃管理器 | AlarmManager |
更新listView | notifyDataSetChanged notifyDataSetChanged() 可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView |
判断是否有sd卡 | if(status.equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(instance, " 有SD卡", Toast.LENGTH_SHORT).show(); } else{ Toast.makeText(instance, "没有SD卡", Toast.LENGTH_SHORT).show(); } |
将图片写到sd卡的根目录下 | String sdcard = android.os.Environment .getExternalStorageDirectory().toString(); FileOutputStream fos = new FileOutputStream(sdcard + "/item" + gallery.getSelectedItemPosition() + ".jpg"); ((BitmapDrawable) getResources().getDrawable( imageResIdList.get(gallery .getSelectedItemPosition()))).getBitmap() .compress(CompressFormat.JPEG, 50, fos); fos.close(); |
获得SD卡路径 | StringsdDir = Environment.getExternalStorageDirectory().toString();// 获取跟目录 |
用ViewFlipper 设置进入进出动画 | ageFlipper.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.push_up_in)); ageFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.push_up_out)); |
调用系统工具播放录音 | // 调用系统工具播放录音 private void startReco(){ Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(recPath)), "audio/mp3"); startActivity(intent); //Intent i = new Intent(); //i.setClass(PartMultimediaActivity.this, PlayVideo.class); //i.putExtra("videoPath", videoPath); //startActivityForResult(i, 111); } |
取得listView里EditText的值 | (EditText)context.listView.getChildAt(0).findViewById(R.id.a).getText().toString(); |
从sd卡中取得的图片的路径 | Uri dataUri = data.getData(); ContentResolver cr = this.getContentResolver(); Cursor cursor = cr.query(dataUri, null, null, null, null); cursor.moveToFirst(); userImagePath = cursor.getString(1); Log.d("debug", " 从相册中获得的图片路径"+userImagePath); |
从相册,内存卡等取得图片的方法 | Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); AlertActivity.this.startActivityForResult(Intent.createChooser( intent, " 选择图片"), TAKEPICTURE); |
将图片变成圆角 | BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; userBitmap = BitmapFactory.decodeFile(userImagePath, options); |
将图片设置成圆角 | /** * 图片圆角 * * @param bitmap * @return */ public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = 12; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } |
设置listView 的headView 不可点击 | listView.addHeaderView(headView,null,false) |
设置editText 不弹出软键盘 | editView.setInputType(InputType.TYPE_NULL) |
文字超出长度则截断 | int MAX_LENGTH = 140; if(status.getStatus()!= null && status.getStatus().length() > StatusSetRequestParam.MAX_LENGTH) { status = status.trim(); } |
本文出自 “冰冰水晶” 博客,谢绝转载!
更多相关文章
- android操作sqlite3的blob字段,显示数据中的图片
- Android 获取Gmail邮箱地址方法
- android 获取SD卡的图片及其路径
- Android应用程序键盘(Keyboard)消息处理机制分析(11)
- Android:读取本地相册与相机获取图片上传到服务器(用字符串的形式
- ubuntu的android studio调试小米手机的方法
- Android 图片缩放与旋转的实现详解
- 图片的放大缩小
- android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明