短視訊直播系統,動態內的圖片實現長按儲存
短視訊直播系統,動態內的圖片實現長按儲存的相關程式碼
1.對於許可權的註冊
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET"/>
2.工具類
public class DonwloadSaveImg { private static Context context; private static String filePath; private static Bitmap mBitmap; private static String mSaveMessage = "失敗"; private final static String TAG = "PictureActivity"; private static ProgressDialog mSaveDialog = null; public static void donwloadImg(Context contexts, String filePaths) { context = contexts; filePath = filePaths; mSaveDialog = ProgressDialog.show(context, "儲存圖片", "圖片正在儲存中,請稍等...", true); new Thread(saveFileRunnable).start(); } private static Runnable saveFileRunnable = new Runnable() { @Override public void run() { try { if (!TextUtils.isEmpty(filePath)) { //網路圖片 // 對資源連結 URL url = new URL(filePath); //開啟輸入流 InputStream inputStream = url.openStream(); //對網上資源進行下載轉換點陣圖圖片 mBitmap = BitmapFactory.decodeStream(inputStream); inputStream.close(); } saveFile(mBitmap); mSaveMessage = "圖片儲存成功!"; } catch (IOException e) { mSaveMessage = "圖片儲存失敗!"; e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } messageHandler.sendMessage(messageHandler.obtainMessage()); } }; private static Handler messageHandler = new Handler() { @Override public void handleMessage(Message msg) { mSaveDialog.dismiss(); Log.d(TAG, mSaveMessage); Toast.makeText(context, mSaveMessage, Toast.LENGTH_SHORT).show(); } }; /** * 儲存圖片 * @param bm * @throws IOException */ public static void saveFile(Bitmap bm ) throws IOException { File dirFile = new File(Environment.getExternalStorageDirectory().getPath()); if (!dirFile.exists()) { dirFile.mkdir(); } String fileName = UUID.randomUUID().toString() + ".jpg"; File myCaptureFile = new File(Environment.getExternalStorageDirectory().getPath() + "/DCIM/Camera/" + fileName); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile)); bm.compress(Bitmap.CompressFormat.JPEG, 80, bos); bos.flush(); bos.close(); //把圖片儲存後宣告這個廣播事件通知系統相簿有新圖片到來 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri uri = Uri.fromFile(myCaptureFile); intent.setData(uri); context.sendBroadcast(intent); }
3.主活動中許可權的判斷以及儲存圖片
public class Main2Activity extends AppCompatActivity { private static int REQUEST_PERMISSION_CODE = 1; private String path=" @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); checkPermission(); } private void checkPermission() { //檢查許可權(NEED_PERMISSION)是否被授權 PackageManager.PERMISSION_GRANTED表示同意授權 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { //使用者已經拒絕過一次,再次彈出許可權申請對話方塊需要給使用者一個解釋 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission .WRITE_EXTERNAL_STORAGE)) { Toast.makeText(this, "請開通相關許可權,否則無法正常使用本應用!", Toast.LENGTH_SHORT).show(); } //申請許可權 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION_CODE); } else { Toast.makeText(this, "授權成功!", Toast.LENGTH_SHORT).show(); Log.e("aaaaa", "checkPermission: 已經授權!"); } } public void write(View view) { //按鈕的點選事件 DonwloadSaveImg.donwloadImg(Main2Activity.this,path);//iPath } }
以上就是短視訊直播系統,動態內的圖片實現長按儲存的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2852264/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重點人員動態管控系統開發,情指勤一體化管控平臺建設
- 使用阿里雲映象站NTP服務搭建NTP伺服器(基於CentOS 7系統)
- 超詳細的編碼實戰,讓你的springboot應用識別圖片中的行人、汽車、狗子、喵星人(JavaCV+YOLO4)
- 美創科技DBRA助力醫院HIS系統一鍵容災快速恢復
- 直播原始碼網站,點選分類調起選單欄並彈出
- app直播原始碼,xml實現由上而下的顏色漸變
- 使用什麼軟體可以給多個視訊同時更換封面圖片
- 政法委重點人員聯防聯控平臺建設,群防群治小程式系統開發
- 為什麼迴圈佇列要浪費一個儲存空間
- 製造業SaaS多供應鏈系統實現全場景數字化,賦能企業降本增效
- 史上最全——自媒體工具指南,爆文蒐集、排版、圖片等!
- Linux系統中有哪些比較重要的檔案系統結構?
- app教育直播系統原始碼,技術培訓網路教育知識付費學歷提升
- 對極驗geetest滑塊驗證碼圖片還原演算法的研究
- 商雲SRM供應商管理系統基於醫療企業供應鏈上游採購和供應商關係