91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android 手機截取長屏實例代碼

發布時間:2020-09-13 11:29:55 來源:腳本之家 閱讀:182 作者:喜歡萌妹子的少年 欄目:移動開發

最近項目遇到一個需求:把當前頁面保存到手機相冊。想了想 我還不會呢,就百度了下大神的足跡,踏著大神的足跡,一路向前。廢話不說,記錄下,后期學習。

 public class ScreenUtils {

/**
 * 截取scrollview的屏幕
 * @param scrollView
 * @return
 */
public static Bitmap getBitmapByView(ScrollView scrollView) {
  int h = 0;
  Bitmap bitmap = null;
  // 獲取scrollview實際高度
  for (int i = 0; i < scrollView.getChildCount(); i++) {
    h += scrollView.getChildAt(i).getHeight();
    scrollView.getChildAt(i).setBackgroundColor(
        Color.parseColor("#ffffff"));
  }
  // 創建對應大小的bitmap
  bitmap = Bitmap.createBitmap(scrollView.getWidth(), h,
      Bitmap.Config.RGB_565);
  final Canvas canvas = new Canvas(bitmap);
  scrollView.draw(canvas);
  return bitmap;
}

/**
 * 截圖listview
 * **/
public static Bitmap getListViewBitmap(ListView listView,String picpath) {
  int h = 0;
  Bitmap bitmap;
  // 獲取listView實際高度
  for (int i = 0; i < listView.getChildCount(); i++) {
    h += listView.getChildAt(i).getHeight();
  }
  // 創建對應大小的bitmap
  bitmap = Bitmap.createBitmap(listView.getWidth(), h,
      Bitmap.Config.ARGB_8888);
  final Canvas canvas = new Canvas(bitmap);
  listView.draw(canvas);
  return bitmap;
}


/**
 * 壓縮圖片
 * @param image
 * @return
 */
public static Bitmap compressImage(Bitmap image) {
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  // 質量壓縮方法,這里100表示不壓縮,把壓縮后的數據存放到baos中
  image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
  int options = 100;
  // 循環判斷如果壓縮后圖片是否大于250K,大于繼續壓縮
  while (baos.toByteArray().length / 1024 > 1024 && options >10) {
    // 重置baos
    baos.reset();
    // 這里壓縮options%,把壓縮后的數據存放到baos中
    image.compress(Bitmap.CompressFormat.JPEG, options, baos);
    // 每次都減少10
    options -= 10;
  }
  // 把壓縮后的數據baos存放到ByteArrayInputStream中
  ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
  // 把ByteArrayInputStream數據生成圖片
  Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);
  return bitmap;
}

/**
 * 保存到sdcard
 * @param b
 * @return
 */
public static String savePic(Context context, Bitmap b) {

  File outfile = new File("/sdcard/image");
  // 如果文件不存在,則創建一個新文件
  if (!outfile.isDirectory()) {
    try {
      outfile.mkdir();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  String fname = outfile + "/" + System.currentTimeMillis() + ".jpg";
  FileOutputStream fos = null;
  try {
    fos = new FileOutputStream(fname);
    if (null != fos) {
      b.compress(Bitmap.CompressFormat.JPEG, 90, fos);
      fos.flush();
      fos.close();
    }
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  }

  // 其次把文件插入到系統圖庫
  try {
    MediaStore.Images.Media.insertImage(context.getContentResolver(),
        outfile.getAbsolutePath(), fname, null);
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  }
  // 最后通知圖庫更新
  context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + fname)));


  return fname;
   }
}

以上為百度的工具類。

使用方法:

 ScreenUtils
   .savePic(XXXActivity.this,ScreenUtils.compressImage(ScreenUtils
      .getBitmapByView(XXXScrollView)));

好了,截取成功了!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍山县| 民丰县| 忻城县| 巫溪县| 太仆寺旗| 靖安县| 天等县| 土默特左旗| 永寿县| 赣州市| 孝感市| 延吉市| 樟树市| 韩城市| 湛江市| 尚义县| 平舆县| 拉萨市| 洞头县| 昌宁县| 策勒县| 承德县| 涿鹿县| 兴安县| 武隆县| 南漳县| 乐陵市| 尼玛县| 恩平市| 海伦市| 张家口市| 乌兰浩特市| 绥芬河市| 且末县| 邛崃市| 兴海县| 尼木县| 河南省| 神农架林区| 临海市| 渭南市|