帶貨直播系統,實現簡單的換頭像並儲存
帶貨直播系統,實現簡單的換頭像並儲存的相關程式碼
public class My_info extends AppCompatActivity implements View.OnClickListener {
private static final int CHOOSE_PHOTO=2;
private CircleImageView image;//一種用於圖片圓形化的控制元件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_info);
image=(CircleImageView)findViewById(R.id.p_pic);
if(readPac()!=null){
image.setImageBitmap(readPac());//如果頭像修改過了,記憶體中已經新的頭像圖片。
}
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.alter: //點選修改頭像事件
/
if(ContextCompat.checkSelfPermission(My_info.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.
PERMISSION_GRANTED){
ActivityCompat.requestPermissions(My_info.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
//以上是訪問相簿的執行時許可權/
}else
{
open();//開啟相簿
}
break;
default: break;
}
}
@Override
//這裡是對使用者是否同意訪問相簿的處理
public void onRequestPermissionsResult(int requestCode,String[] permissions,int [] grantResults){
switch (requestCode){
case 1:
if(grantResults.length>0 && grantResults[0]==PackageManager.PERMISSION_GRANTED){
open();
}else{
Toast.makeText(My_info.this,"您拒絕了許可權",Toast.LENGTH_SHORT).show();
}
break;
default:
}
}
//開啟相簿
private void open(){
Intent intent=new Intent("android.intent.action.GET_CONTENT");
intent.setType("image/*");
startActivityForResult(intent,CHOOSE_PHOTO);
}
//
@Override
protected void onActivityResult(int requestCode,int reultCode,Intent data){
switch (requestCode){
case CHOOSE_PHOTO:
if(reultCode==RESULT_OK){
handle(data);
}
break;
}
}
private void handle(Intent data){
String imagePath=null;
Uri uri=data.getData();
if(DocumentsContract.isDocumentUri(this,uri)){
String docId=DocumentsContract.getDocumentId(uri);
/ if("com.android.providers.media.documents".equals(uri.getAuthority())){
String id=docId.split(":")[1];
String selection= MediaStore.Images.Media._ID+"="+id;
imagePath=getImagePath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,selection);
}else if("com.android.providers.dowmloads.documents".equals(uri.getAuthority())){
Uri contentUri= ContentUris.withAppendedId(Uri.parse("content://downloads/public_downloads"),Long.valueOf(docId));
imagePath=getImagePath(contentUri,null);
}else if("content".equalsIgnoreCase(uri.getScheme())){
imagePath=getImagePath(uri,null);
}else if("file".equalsIgnoreCase(uri.getScheme())){
imagePath=uri.getPath();
}
displayImage(imagePath);
}
}
private String getImagePath(Uri uri,String selection){
String path=null;
Cursor cursor=getContentResolver().query(uri,null,selection,null,null);
if(cursor!=null){
if(cursor.moveToFirst()){
path=cursor.getString(cursor.getColumnIndex(MediaStore.Ima//ges.Media.DATA));
}
cursor.close();
}
return path;
}
private void displayImage(Str/ing imagePath){
if(imagePath!=null){
Bitmap bitmap= BitmapFactory.decodeFile(imagePath);
image.setImageBitmap(bitmap);
Toast.makeText(My_info.this,"獲取圖片成功",Toast.LENGTH_SHORT).show();
savePac(bitmap);
}else {
Toast.makeText(My_info.this,"獲取圖片失敗",Toast.LENGTH_SHORT).show();
}
}
//以上獲取圖片的絕對路徑再獲取bitmap例項過程來自《第一行程式碼 第2版》P299//
//
//
//
private void savePac(Bitmap bitmap){//儲存圖片
String TargetPath=My_info.this.getFilesDir().toString()+File.separator+"imagic";//getFilesDir()方法用於獲取/data/data//files目錄
File file=new File(TargetPath,"pac.jpg");
file.delete();
if(!file.exists()){
file.getParentFile().mkdirs();
}
try{
FileOutputStream fileOutputStrea=new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG,80,fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
}catch (Exception e){
Log.d("cnm", e.toString());
}
}
private Bitmap readPac(){//讀取圖片
String savePath=My_info.this.getFilesDir().toString()+File.separator+"imagic"+File.separator+"pac.jpg";
Bitmap bitmap = null;
try{
bitmap = BitmapFactory.decodeFile(savePath);
} catch (Exception e) {}
return bitmap;
}
}
以上就是 帶貨直播系統,實現簡單的換頭像並儲存的相關程式碼,更多內容歡迎關注之後的文章
相關文章
- 直播帶貨系統是如何實現直播錄屏的
- matlab呼叫攝像頭並儲存成幀的形式Matlab
- 頭像點選檢視大圖和儲存功能實現(儲存的細節處理)
- Go實現簡單的K-V儲存Go
- UITabBarController移除系統自帶UITabBarButton簡單實現UItabBarController
- 直播商城系統APP帶貨系統短視訊帶貨系統APP
- 呼叫支付介面,實現直播帶貨系統原始碼的線上支付原始碼
- 直播帶貨系統原始碼,實現MYSQL資料庫的主從同步原始碼MySql資料庫主從同步
- 直播系統搭建,簡單實現Android應用的啟動頁Android
- 短視訊直播系統,動態內的圖片實現長按儲存
- 直播賣貨系統的火爆源於帶貨直播原始碼的特色原始碼
- 帶貨直播系統,透過主從同步實現讀寫分離主從同步
- 帶貨直播系統,透過ffmpeg推流實現首屏秒開
- 直播帶貨系統的開發打破原有的直播模式模式
- 直播帶貨原始碼,Android 簡單動畫播放原始碼Android動畫
- android studio之簡單呼叫攝像頭並且獲取其照片Android
- 簡單介紹Pytorch實現WGAN用於動漫頭像生成PyTorch
- 帶貨直播系統原始碼的發展史原始碼
- 直播帶貨系統開發如何在眾多同行中嶄露頭角
- ServerSocket實現簡單的廣播系統Server
- 純JavaScript實現的呼叫裝置攝像頭並拍照的功能JavaScript
- 如何實現檔案傳輸系統的多儲存
- 實現直播帶貨系統推流,你進行推流監控了嗎?
- MediaStream 實現帶攝像頭捕捉的表情包製作器AST
- JavaCV的攝像頭實戰之三:儲存為mp4檔案Java
- 線上直播系統原始碼,簡單實現Android應用的啟動頁原始碼Android
- 直播市場的爆發延伸出直播帶貨系統的市場
- Android中呼叫攝像頭拍照儲存,並在相簿中選擇圖片顯示Android
- 直播帶貨系統為商家帶來了怎樣的機遇?
- 簡單快遞系統 java實現Java
- 實現最簡單的模板替換
- iOS 儲存攝像頭H264視訊流iOS
- 直播平臺原始碼,實現一個簡單的帶tabs選項卡切換的首頁導航功能原始碼
- 儲存論——經濟訂貨批次的R實現
- 短視訊系統,獲取camera的的影像並儲存
- 商城APP直播帶貨,原生開發系統功能APP
- win10系統頭像設定_win10如何更改系統頭像Win10
- 儲存系統