1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android 图片转换成base64

android 图片转换成base64

时间:2024-02-11 12:46:25

相关推荐

android 图片转换成base64

1.布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="16dp"android:orientation="vertical"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:id="@+id/bt_encode"android:text="Encode Image"android:layout_marginEnd="4dp"/><Buttonandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:id="@+id/bt_decode"android:text="Decode Image"android:layout_marginEnd="4dp"/></LinearLayout><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/text_view"android:maxLines="5"android:ellipsize="end"android:layout_marginTop="8dp"/><ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/image_view"android:scaleType="centerCrop"android:adjustViewBounds="true"android:layout_marginTop="8dp"/></LinearLayout>

2.java代码

package com.example.image2base64;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import androidx.core.app.ActivityCompat;import androidx.core.content.ContextCompat;import android.Manifest;import android.content.Intent;import android.content.pm.PackageManager;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import .Uri;import android.os.Bundle;import android.provider.MediaStore;import android.util.Base64;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.io.ByteArrayOutputStream;import java.io.IOException;public class MainActivity extends AppCompatActivity {Button btEncode,btDecode;TextView textView;ImageView imageView;String sImage;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btEncode = findViewById(R.id.bt_encode);btDecode = findViewById(R.id.bt_decode);textView = findViewById(R.id.text_view);imageView = findViewById(R.id.image_view);btEncode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},100);}else{selectImage();}}});btDecode.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {byte[] bytes = Base64.decode(sImage,Base64.DEFAULT);Bitmap bitmap = BitmapFactory.decodeByteArray(bytes,0,bytes.length);imageView.setImageBitmap(bitmap);}});}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {super.onRequestPermissionsResult(requestCode, permissions, grantResults);if(requestCode == 100 && grantResults[0] == PackageManager.PERMISSION_GRANTED){selectImage();}else{Toast.makeText(this, "权限关闭", Toast.LENGTH_SHORT).show();}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode ==100 && resultCode == RESULT_OK && data!=null){Uri uri = data.getData();try {Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),uri);ByteArrayOutputStream stream = new ByteArrayOutputStream();press(pressFormat.JPEG,100,stream);byte[] bytes = stream.toByteArray();sImage = Base64.encodeToString(bytes,Base64.DEFAULT);textView.setText(sImage);} catch (IOException e) {e.printStackTrace();}}}private void selectImage(){textView.setText("");imageView.setImageBitmap(null);Intent intent = new Intent(Intent.ACTION_PICK);intent.setType("image/*");startActivityForResult(Intent.createChooser(intent,"Select Image"),100);}}

3.manifest文件

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。