现在的位置: 首页 > 综合 > 正文

Android一些实用的函数

2013年11月11日 ⁄ 综合 ⁄ 共 1590字 ⁄ 字号 评论关闭

一些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);

}

 

抱歉!评论已关闭.