• 《团队-手机app便签-开发文档》


    项目托管平台地址:https://github.com/Vcandoit/Notepad.git

    我主要负责文件存储部分,文字部分使用sqlite保存。

    因为我们想实现备忘录记录照片、语音的功能,所以还会涉及照片和语音的存储问题,由于语音模块还存在问题,所以我先以照片存储做尝试。

    public class PhotoActivity extends Activity {

    final static int CAMERA_RESULT = 0;
    private Button button;//声明一个Button对象
    private ImageView imageView;//声明一个ImageView对象
        public static final int TAKE_PHOTO = 1;//声明变量代表结果码
    public static final int CROP_PHOTO = 2;
    private Uri imageUri; //图片路径
    private String filename; //图片名称

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.takephoto);
    button = (Button) findViewById(R.id.button);
    imageView = (ImageView) findViewById(R.id.imageView);
    button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {

    //图片名称 以时间命名
    SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");
    Date date = new Date(System.currentTimeMillis());
    filename = format.format(date);
    //在缓存目录中创建MMM文件夹作为图片存储位置
    File path = getExternalFilesDir("MMM");
    File outputImage = new File(path,filename+".jpg");
    try {
    if(outputImage.exists()) {
    outputImage.delete();
    }
    outputImage.createNewFile();
    } catch(IOException e) {
    e.printStackTrace();
    }
    //将File对象转换为Uri并启动照相程序
             //由于版本不同转换方式不同转换Uri之前先判断版本
    if(Build.VERSION.SDK_INT >= 24){
    imageUri = FileProvider.getUriForFile(PhotoActivity.this,"com.example",outputImage);
    }else {
    imageUri = Uri.fromFile(outputImage);
    }
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); //照相
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); //指定图片输出地址

    // 启动照相
    startActivityForResult(intent,TAKE_PHOTO);
    //拍完照startActivityForResult() 结果返回onActivityResult()函数

    }
    });
    }
    /**
    * 用onActivityResult()接收传回的图像,当用户拍完照片,或者取消后,系统都会调用这个函数
    */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if(resultCode==RESULT_OK){
    Bundle extras=intent.getExtras();//从Intent中获取附加值
    Bitmap bitmap=(Bitmap) extras.get("data");//从附加值中获取返回的图像
    imageView.setImageBitmap(bitmap);//显示图像
    }
    }

    点击事件中的代码就是相机的调取和图片的保存操作,之后会在数据库中保存图片的路径用来调取图片。
    为防止图片命名冲突,在用时间命名的时候精确到秒,把重复的可能性降到最小。
  • 相关阅读:
    30 张图详解操作系统总结!
    Redis配置与优化
    SpringBoot中使用@Async注解使用及其失效问题解决 规格严格
    Key exchange was not finished,connection is closed近期遇到这个错误sshd更新导致的 规格严格
    java SpringBoot注解@Async不生效的解决方法 规格严格
    Kafka Producer配置 规格严格
    SpringBoot项目迁移到tongweb 规格严格
    Spring Boot系列二 Spring @Async异步线程池用法总结 规格严格
    OutOfMemoryError: GC Overhead Limit Exceeded错误解析 规格严格
    SQL语句update set 嵌套 case when以及MyBatis中的写法 规格严格
  • 原文地址:https://www.cnblogs.com/cxyliming/p/7777090.html
Copyright © 2020-2023  润新知