Android:拍照功能及將圖片壓縮存入指定路徑的方法
package com.example.administrator.testapplication; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import java.io.File; import java.io.IOException; import java.math.BigDecimal; public class MainActivity extends Activity { private ImageView img; private static final String TEMP_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp/temp_" + System.currentTimeMillis() + ".jpg"; private static final int REQ_CARMER = 0x002; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); isFolderExists(Environment.getExternalStorageDirectory().getAbsolutePath() + "/tmp/");//判斷目錄是否存在 checkFile(TEMP_PATH);//檢查檔案是否存在 img = (ImageView) findViewById(R.id.img); findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { takePhoto(); } }); } //檢查檔案是否存在 private void checkFile(String path) { File file = new File(path); if (!file.exists()) { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } } //判斷目錄是否存在 boolean isFolderExists(String strFolder) { File file = new File(strFolder); if (!file.exists()) { if (file.mkdirs()) { return true; } else { return false; } } return true; } private void takePhoto() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //path為儲存圖片的路徑,執行完拍照以後能儲存到指定的路徑下 File file = new File(TEMP_PATH); intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0); startActivityForResult(intent, REQ_CARMER); } //圖片壓縮 public Bitmap setImage(String path, Intent intent) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, options); // double value = new BigDecimal(options.outWidth).divide(new BigDecimal(options.outHeight), 4, BigDecimal.ROUND_HALF_UP).doubleValue(); // intent.putExtra(Constants.ISNULL, false); // intent.putExtra(Constants.IMGPATH, path); // intent.putExtra(Constants.ASPECT_RATIO, value == 0d ? "1.0000" : format.format(value)); options.inJustDecodeBounds = false; int be = Math.max(options.outWidth, options.outHeight) / 20; if (be % 10 != 0) be += 10; be = be / 10; if (be <= 0) be = 1; options.inSampleSize = be; return BitmapFactory.decodeFile(path, options); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { switch (requestCode) { case REQ_CARMER: img.setImageBitmap(setImage(TEMP_PATH, new Intent())); break; } } super.onActivityResult(requestCode, resultCode, data); } }
不要忘了新增許可權:
<uses-permission android:name="android.permission.CAMERA"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
相關推薦
Android:拍照功能及將圖片壓縮存入指定路徑的方法
package com.example.administrator.testapplication; import android.app.Activity; import android.content.Intent; import android.graphics.B
Java將圖片壓縮至指定大小
公司有業務,需要將部分圖片壓縮到指定大小以內才能上傳到某平臺。所以就學習了網上 各位大佬的圖片壓縮程式碼。寫了一個工具類,本著共同學習的態度,把程式碼貼一下,大家一起學習,一起進步。 工具類: package com.yulong.app.util; im
Android拍照,選擇本地圖片
Android 6.0之後對許可權做出了改變,所以很多時候發現無法正常呼叫系統的功能,所以需要進行許可權的動態獲取。這裡我寫拍照和獲取本地圖片,就獲取拍照的許可權。 /** * 檢查許可權 */ private void checkPermiss
android基於libjpeg-turbo的圖片壓縮框架
Light a lightweight image compress framework for Android based on libJpeg. 一個基於libJpeg的壓縮圖片框架, 支援配合rxjava使用。 可以一行程式碼解決圖片下載->壓縮->顯
Android性能優化之圖片壓縮優化
bit nat nsa lose 3.2 透明度 之間 修復 基準 1 分類Android圖片壓縮結合多種壓縮方式,常用的有尺寸壓縮、質量壓縮、采樣率壓縮以及通過JNI調用libjpeg庫來進行壓縮。 參考此方法:Android-BitherCompress 備註:對於資源
利用localResizeIMG將圖片壓縮轉為base64上傳
在進行圖片上傳的時候,因為有些圖片太大,為了減輕伺服器的壓力,我們需要將圖片進行壓縮上傳。今天總結一下利用localResizeIMG如何將圖片壓縮轉為base64上傳,其中localResizeIMG外掛已上傳csdn。 程式碼如下: <!doctype html> <
Android拍照和相簿選擇圖片上傳所遇到的一些坑
微信公眾號:IT小頑童 前段時間做拍照和相簿選擇圖片上傳,遇到一些坑,最近閒來沒事,就整理一篇部落格,並寫了個demo,專案中使用純java,這次採用java + kotlin混合,GitHub的地址戳此 1、首先遇到的的是Android7.0的坑 說是坑,有點欲加
android 拍照本本地選擇圖片上傳
好久沒有坐下來安安靜靜的寫部落格了 ,上一篇寫的是自定義相機 ,以前專案中用過一些第三方的庫 ,萬物歸終今天找個時間總結一下 ,做開發幾年了 。隨著android studio的運用,開源資源越來越多,越來越好用 ,但是使用第三方的開原始碼,越來越不爽 ,很多庫漸漸的丟下了
如何將圖片壓縮到50k以下
很多的人都不瞭解圖片怎麼進行壓縮,而且壓縮到50k一下這麼小也不知道怎麼操作,選擇使用的軟體也是不符合自己的心意,其實將圖片壓縮到50K一下還是比較簡單的,下面就為大家操作一下圖片壓縮到50K以下的具體操作步驟吧。 1:將自己需要進行壓縮的圖片準備好,放在可以隨時找到的位置
Android中利用Picasso實現圖片壓縮指定任意尺寸
之前做專案時,有個需求是指定照片壓縮到任意寬高尺寸上傳給伺服器。當時我自己寫了個圖片壓縮方法,但是不夠完美,小問題不斷(比如OOM之類的)。後來看到了神器Picasso不光能載入網路圖片,還能以任意尺寸載入本地圖片。於是我想,既然Picasso能任意尺寸載入本地圖片,那它肯
Android拍照和獲取相簿圖片
之前遇到各種拍照啊,獲取相簿圖片之類,都是直接去度娘,要麼之前的程式碼複製下,沒好好總結過。 再也不要問度娘了,再也不用一堆部落格裡找啊找了。。。 ----------------------------------------------我是正文的分割線---------
Android拍照、相簿 獲取圖片後,裁剪圖片
最近在做的B2B的專案,圖片大部分來源於使用者自己上傳; 由於android尺寸的不一,使用者相機,相簿的圖片也是奇形怪狀; 所以在上傳之前對圖片做一次裁剪是很有必要的! 下面是按比例裁剪圖片的demo 資原始檔activity_main.xml
怎麼將圖片壓縮到最小,用什麼方法
圖片怎麼才能壓縮到最小呢?在我們的工作中,圖片檔案是不可缺少的,怎麼樣將圖片壓縮到最小呢?下面為大家介紹一下圖片壓縮到最小的操作方法。 1:首先需要將自己的圖片檔案準備好,放置在可以隨時進行新增的位置。 2:在瀏覽器找到一款壓縮軟體,將壓縮軟體安裝到自己的電腦中。開啟
Android有效避免程式OOM-圖片壓縮和三級快取
前言 我們都知道現在的手機應用APP真的是給我們的生活帶來了巨大的便利,應用中的圖片也是精美絕倫特別好看,並且隨著科技的進步,相機的解析度也越來越高了,手機拍出來的照片可能達到十幾兆很正常,圖片這麼大,在實際的開發過程中,還經常會遇到圖片的載入等
Android拍照後獲得的圖片旋轉90度問題
最近一直在做一個掃描的專案,用zxing實現二維碼的掃描,需求要實現拍照並且掃描名片,發現拍照出來的照片是旋轉的。一直找原因找不到,在國外一個論壇看到說是camera獲取data資料是橫向的,沒有經過處理所以顯示就是旋轉的。想了好久還是不會實現data的旋轉,索性就將bit
js實現圖片的上傳及將圖片轉為base64格式
首先用的是react + axios + antd檔案上傳介面:fileUpload(api, file, isHost = true) { const url = (isHost ? host : '') + api; const formData = new
Android第三方開源庫:圖片壓縮
CompressHelper 原圖: 許可權: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permissi
Android7.0呼叫系統拍照、系統相簿(圖片壓縮、檢視原圖、許可權處理)
效果以及需求 檢視原圖可點選放大,可兩指放大等 1.PopupWindow的簡單使用 PopupWindow最基本的三個條件是一定要設定的:View contentView
Android之拍照和相簿選取圖片並裁剪得到路徑
-----------------轉載請註明出處:http://blog.csdn.net/android_cll 一:先來兩張效果圖: 1.這是我們專案用到這個功能的截圖、 2.demo的截圖,功能和上面截圖功能一樣,懶得截圖、 二:實現步驟: 1.xml的實現
H5前端呼叫Android拍照功能
JS呼叫Android攝像頭拍照 產品經理要求H5要實現直接呼叫原生攝像頭完成拍照功能: 一開始也是糊塗,我們前端的哥們總說用JS可以直接呼叫,不用Android的Java程式碼,所以我一開始也信了,想了想不是那麼回事,可以呼叫也是通過原生封裝好的。