1、实现功能
目前设想的是,通过调用手机自带的相机拍摄照片,然后返回界面,然后存储进入数据库,最后读取出来。
对于数据库存储图片的方式,我的解释,选择目前我最需要的一种方式:BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。
在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。
BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。
2、相关代码
布局界面就是一个xml文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:layout_editor_absoluteY="25dp">
<ImageView
android:id="@+id/iv_pic"
android:layout_width="231dp"
android:layout_height="223dp"
android:layout_marginStart="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_4"
app:layout_constraintVertical_bias="0.109" />
<ImageView
android:id="@+id/iv_pic1"
android:layout_width="231dp"
android:layout_height="223dp"
android:layout_marginStart="136dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_4"
app:layout_constraintVertical_bias="0.929" />
<Button
android:id="@+id/btn_4"
android:layout_width="90dp"
android:layout_height="44dp"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="相机"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/btn_5"
android:layout_width="90dp"
android:layout_height="44dp"
android:layout_marginStart="136dp"
android:layout_marginTop="16dp"
android:text="读取"
app:layout_constraintStart_toEndOf="@+id/btn_4"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
数据库部分:MySqlLite
package com.example.wuluo.uidesigen;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by wuluo on 2020/4/11
*/
public class MySqlLite extends SQLiteOpenHelper {
public MySqlLite(Context context, int version) {
//指明上下文,数据库名,工厂默认空值,版本号默认从1开始
super(context, "panzou.db", null, version);
}
//数据库文件创建成功后调用,
@Override
public void onCreate(SQLiteDatabase db)