1.Invalidate()和PostInvalidate(),这两个方法作用都一样,就是呼叫ui线程重新绘制界面也就是刷新界面。那为什么要两个方法呢,这是因为android是多线程应用,大家应该都知道在非UI线程中是不能直接操作界面控件的,所以第2个方 法就帮助大家在子线程中刷新界面,第一个方法则是在UI线程中刷新界面。
2.getX()和getRawX()这两个方法的左右都是获取当前点在屏幕上的坐标,getX()是获取当前点相对于当前视图左上角的坐标,getRawX()则是获取当前点相对于手机屏幕左上角的坐标。
3.获取屏幕的大小
DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
mScreenHeight = outMetrics.heightPixels;
mScreenWidth = outMetrics.widthPixels;
EditText中android:capitalize属性的作用
sentences仅第一个字母大写;
words每一个单词首字母大小,用空格区分单词;
characters每一个英文字母都大写。
android 生成SHA1
keytool -list -v -keystore debug.keystore
数组与集合的转换
//集合变数组
ArrayList<String> permissionArray = new ArrayList<>();
permissionArray.add("hehe");
permissionArray.add("嘻嘻");
String[] str = permissionArray.toArray(new String[permissionArray.size()]);
//数组变集合
String[] array=new String[3];
array[0]="王利虎";
array[1]="张三";
array[2]="李四";
List<String> list=Arrays.asList(array);
相机分辨率
E/TAG: initCamrea: 4096,2160
E/TAG: initCamrea: 3840,2160
E/TAG: initCamrea: 1920,1080
E/TAG: initCamrea: 1280,960
E/TAG: initCamrea: 1280,720
E/TAG: initCamrea: 864,480
E/TAG: initCamrea: 800,480
E/TAG: initCamrea: 720,480
E/TAG: initCamrea: 640,480
E/TAG: initCamrea: 640,360
E/TAG: initCamrea: 480,320
E/TAG: initCamrea: 352,288
E/TAG: initCamrea: 320,240
E/TAG: initCamrea: 176,144
E/TAG: initCamrea: 160,120
三种方法获得缩略图
//第一种
public staticBitmap getVideoThumbnail(String videoPath) {
MediaMetadataRetriever media =newMediaMetadataRetriever();
media.setDataSource(videoPath);
Bitmap bitmap = media.getFrameAtTime();
return bitmap;
}
//第二种
public staticBitmap getVideoThumbnail(String videoPath,intwidth,intheight,intkind) {
Bitmap bitmap =null;
bitmap = ThumbnailUtils.createVideoThumbnail(videoPath, kind);
bitmap = ThumbnailUtils.extractThumbnail(bitmap, width, height, ThumbnailUtils.OPTIONS_RECYCLE_INPUT);
return bitmap;
}
//第三种
Bitmap bitmap = MediaStore.Video.Thumbnails.getThumbnail(cr, id, MediaStore.Video.Thumbnails.MINI_KIND, null);