一些Android實用函數收集,不斷更新中。
1:獲得屏幕的密度,用於屏幕適配
1
2
3
4
5
6
public static float getDensity(Context ctx) {
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
return metrics.density;
}
2:獲得版本的名字
1
2
3
4
5
6
7
8
9
10
11
12
public static String getVersionName(Context context, String packageName) {
PackageInfo pInfo = null;
String rs = "";
try {
pInfo = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_META_DATA);
rs = pInfo.versionName;
}
catch (Exception e) {
e.printStackTrace();
}
return rs;
}
3:獲得圖片的倒影,同時倒影漸變效果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public static Bitmap createMirro(Bitmap srcbitmap) {
int width = srcbitmap.getWidth();
int height = srcbitmap.getHeight();
int shadow_height = 15;
int[] pixels = new int[width * height];
srcbitmap.getPixels(pixels, 0, width, 0, 0, width, height);
// shadow effect
int alpha = 0x00000000;
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int index = y * width + x;
int r = (pixels[index] >> 16) & 0xff;
int g = (pixels[index] >> 8) & 0xff;
int b = pixels[index] & 0xff;
pixels[index] = alpha | (r << 16) | (g << 8) | b;
}
if (y >= (height - shadow_height)) {
alpha = alpha + 0x1F000000;
}
}
// invert effect
Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
for (int y = 0; y < height; y++) {
bm.setPixels(pixels, y * width, width, 0, height - y - 1, width, 1);
}
return Bitmap.createBitmap(bm, 0, 0, width, shadow_height);
}