Android学习之读取数据库中的所有图片

文章目录

  • 1、原理
  • 2、增加部分
  • 3、修改部分
  • 4、实现效果
  • 5、灵感来源

1、原理

不懂我说的是啥,请参考这篇文章:https://blog.csdn.net/qq_43433255/article/details/105463527

2、增加部分

一个样本的xml文件:test.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:orientation="vertical"
        >
        <TextView
            android:id="@+id/tv_t1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1"/>
        <TextView
            android:id="@+id/tv_t2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="不知道"/>
        <ImageView
            android:id="@+id/iv_t3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>
</RelativeLayout>

一个适配器部分:Testadapter

package com.example.wuluo.uidesigen;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.sql.Blob;
import java.util.List;

/**
 * Created by wuluo on 2020/4/12
 */
public class Testadapter extends BaseAdapter implements View.OnClickListener{
    //数据源、
    private List<Test> testDates;
    //布局加载器
    private Context testContext;
    private InnerItemOnClickListener ding1innerItemOnClickListener;
    //有参的构造函数,为数据源,上下文对象复制,同时实例化布局加载器
    Testdbop dbOperate=new Testdbop();
    //初始化一下数据库,不然后面delete用的时候database是空的
    public Testadapter(Context context,List list) {
        this.testDates=list;
        this.testContext=context;
        dbOperate.test(context);
    }

    @Override
    public void onClick(View v) {

    }

    @Override
    public int getCount() {
        return testDates.size();
    }

    @Override
    public Object getItem(int position) {
        return testDates.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View guanView=View.inflate(testContext,R.layout.test,null);

        //实例化布局上的控件
        TextView tv_t1=guanView.findViewById(R.id.tv_t1);
        TextView tv_t2=guanView.findViewById(R.id.tv_t2);
        ImageView iv_t3=guanView.findViewById(R.id.iv_t3);

        final Test dingone=(Test) testDates.get(position);

      //  tv_t1.setText(dingone.getTid());
       // tv_t2.setText(dingone.getTname());
        if(dingone.getTvatar()==null){
            iv_t3.setImageResource(R.drawable.qd);
        }else {
            byte [] imgData = dingone.getTvatar();
            Bitmap bm  = BitmapFactory.decodeByteArray(imgData, 0, imgData.length);
            iv_t3.setImageBitmap(bm);
        }

        //iv_t3.setBytes()

        //Bitmap imagebitmap = BitmapFactory.decodeByteArray(imgData, 0, imgData.length);
        //iv_t3.setImageResource(dingone.getQiaotype());
        return guanView;
    }
    //创建内部控件监听接口
    interface  InnerItemOnClickListener{
        abstract  void itemClick(View view);
    }

    public void setOnInnerOnClickListenner(InnerItemOnClickListener listener)
    {
        this.ding1innerItemOnClickListener=listener;
    }
}

3、修改部分

修改的是Main8Activity的读取部分,注释部分:

case  R.id.btn_5 :
    //相机
   // readImage();
   // dbop.searchall();
    /*
    System.out.println("开始读取");
    byte[] imgData=dbop.readImage();
    System.out.println("准备显示");
    if (imgData!=null) {
        //将字节数组转化为位图
        Bitmap imagebitmap = BitmapFactory.decodeByteArray(imgData, 0, imgData.length);
        //将位图显示为图片
        iv_pic1.setImageBitmap(imagebitmap);
        System.out.println("显示成功");
    }else {
        iv_pic1.setBackgroundResource(android.R.drawable.menuitem_background);
    }
    */
    dbop.test(this);
    gj=dbop.queryAll();
    if(!gj.isEmpty()){
        showList(gj);
    }
    break;

添加了一个部分:

private void showList(List<Test> gj) {
    Testadapter guanAdapter = new Testadapter(this, gj);
    lv_71.setAdapter(guanAdapter);

}

4、实现效果

文字部分是没有录入,也就是数据库只有图片,
Android学习之读取数据库中的所有图片_第1张图片

5、灵感来源

https://www.cnblogs.com/mengxiao/p/6872385.html

你可能感兴趣的:(Android,wuluo)