调用系统图库,添加自定义字体,屏幕截图

来源:互联网 发布:工业控制网络安全性 编辑:程序博客网 时间:2024/04/28 22:15

1、调用系统图库
调用系统图库用的是intent,步骤为弹出系统图库选择器,选择图片后获取到所选择的图片。代码如下:

//在需要的地方调用Intent intent = new Intent(Intent.ACTION_PICK, null);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");startActivityForResult(intent, 100);//100为requestCode//在onActivityResult中获取结果@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if (resultCode == RESULT_OK && requestCode == 100) {        if (data != null) {            mPhoto.setImageURI(data.getData());//mPhoto是一个ImageView        }    }}

这里在onActivityResult中拿到的是图片的Uri。

2、添加自定义字体
添加自定义自体分两步:
a:是添加字体文件到项目asserts文件夹中(不能添加到res中,因为res中的资源在打包时会压缩,字体文件不能压缩),
b:通过代码设置字体

//mWord是一个EditText,当然也可以用TextView,字体文件存在项目的asserts/fonts文件夹中mWord.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/test.ttf"));

3、屏幕截图
代码:

/** * 调用系统截图功能获取屏幕截图 * @return */private Bitmap getScreenShot() {    View view = getWindow().getDecorView();    view.setDrawingCacheEnabled(true);    view.buildDrawingCache();    return view.getDrawingCache();}

偶尔会碰到 View的getDrawingCache为空 这时可以用下面的办法解决:

public static Bitmap loadBitmapFromView(View v, boolean isParemt) {      if (v == null) {          return null;      }      Bitmap screenshot;      screenshot = Bitmap.createBitmap(v.getWidth(), v.getHeight(), HDConstantSet.BITMAP_QUALITY);      Canvas c = new Canvas(screenshot);      c.translate(-v.getScrollX(), -v.getScrollY());      v.draw(c);      return screenshot;  }
0 0
原创粉丝点击