• 《团队-手机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);//显示图像
    }
    }

    点击事件中的代码就是相机的调取和图片的保存操作,之后会在数据库中保存图片的路径用来调取图片。
    为防止图片命名冲突,在用时间命名的时候精确到秒,把重复的可能性降到最小。
  • 相关阅读:
    如何探测浏览器是否开启js功能
    CSS3的animation功能
    registerServiceWorker创建的React项目中的registerServiceWorker作用?
    atom的react自动补全插件
    利用SQL Profiler处理开销较大的查询
    详解执行计划
    SQL Server执行计划的理解
    普通<= >=和between的sql查询方式区别与推荐
    学习如何看懂SQL Server执行计划(三)——连接查询篇
    学习如何看懂SQL Server执行计划——基本知识篇
  • 原文地址:https://www.cnblogs.com/cxyliming/p/7777090.html
Copyright © 2020-2023  润新知