前十天冲刺(DAY4)


第四天,开始考虑如何把照片加入增晒改查的一部分,询问了一天AI,没做出实质性的东西

简单展示与ai的对话记录,然后我发现我们之前的简单的增删改查得重写了
在Android Studio项目中实现带有图片的增删改查功能,通常涉及到SQLite数据库来存储文字信息以及使用文件系统或第三方库(如Glide、Picasso或Android的内置Bitmap和File APIs)来处理图片的存储和显示。以下是一个简化的步骤指南:

  1. 准备工作
    创建数据库和表: 使用SQLiteOpenHelper创建数据库和表,表中除了文本字段,还可以有一个字段用来存储图片的文件路径或URI。
    实体类: 创建一个实体类来表示你的数据模型,包括文本信息和图片路径。
  2. 图片存储
    保存图片: 用户选择或拍摄的图片可以存储到设备的内部存储或外部存储(推荐使用getExternalFilesDir()来获取安全目录),并将图片的路径或URI保存到数据库中。
    读取图片: 根据数据库中存储的路径,使用Glide、Picasso等库或原生的BitmapFactory加载图片并显示。
  3. 增删改查操作
    增 (Insert): 将文本信息和图片路径一起插入数据库。
    删 (Delete): 根据ID或其他条件从数据库中删除记录,并可选地从文件系统删除对应的图片文件。
    改 (Update): 更新数据库中的文本信息或替换图片文件,并更新数据库中的图片路径。
    查 (Query): 查询数据库并根据结果集显示相关信息和加载图片。
    示例代码片段
    数据库助手类 (DatabaseHelper.java)
    Java
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "my_database.db";
private static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "articles";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_TITLE = "title";
public static final String COLUMN_IMAGE_PATH = "image_path";

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE " + TABLE_NAME + "("
            + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
            + COLUMN_TITLE + " TEXT,"
            + COLUMN_IMAGE_PATH + " TEXT)";
    db.execSQL(createTable);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
    onCreate(db);
}

// 插入、删除、更新、查询方法...

}
增加一条记录
Java
ContentValues values = new ContentValues();
values.put(DatabaseHelper.COLUMN_TITLE, "文章标题");
values.put(DatabaseHelper.COLUMN_IMAGE_PATH, imagePath); // imagePath为图片的存储路径
database.insert(DatabaseHelper.TABLE_NAME, null, values);
显示图片
使用Glide库显示图片(记得在build.gradle文件中添加Glide依赖):

Java
Glide.with(context)
.load(imagePath)
.into(imageView);
注意事项
确保处理好文件权限问题,特别是Android 6.0(API级别23)及以上版本需要运行时权限管理。
考虑图片的压缩和质量控制,避免占用过多存储空间。
在删除数据库记录时,记得清理相关的图片文件,以免造成资源泄露。

posted @ 2024-04-29 21:11  畅通无组  阅读(1)  评论(0编辑  收藏  举报