如何在android imageview中显示数据库中的图像

问题描述 投票:0回答:1

嗨,在我的应用程序中,我在该图像中得到了 json 响应。我想在 android imageview 中显示该图像。在该图像中,我想为 imageView 设置。

图片":"547150_156322317826149_1332901104_n.jpg

谁能帮帮我吗

android imageview
1个回答
0
投票

RecyclerViewAdapter.java

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
Context context;
ArrayList<DataList> arrName;

public RecyclerViewAdapter(Context context, ArrayList<DataList> arrName) {
    this.context = context;
    this.arrName = arrName;
}


@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
    return new ViewHolder(LayoutInflater.from(context).inflate(R.layout.name_row, viewGroup, false));
}

@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
    viewHolder.name.setText(arrName.get(i).getName());
    viewHolder.address.setText(arrName.get(i).getAddress());
    DataList datalist = arrName.get(i);

    byte[] recordImage = datalist.getImage();
    Bitmap bitmap = BitmapFactory.decodeByteArray(recordImage, 0, recordImage.length);
    viewHolder.img.setImageBitmap(bitmap);
}

@Override
public int getItemCount() {
    return arrName.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    TextView name, address;
    ImageView img;

    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        name = itemView.findViewById(R.id.name);
        address = itemView.findViewById(R.id.addr);
        img = itemView.findViewById(R.id.image);
    }
}}

MainActivity.java

public class MainActivity extends AppCompatActivity {
TextView txtChage;
Button btnChage, RemoveRecylerView;
RecyclerView recyclerView;
ArrayList<DataList> arrnames = new ArrayList<>();

ArrayList<DataList> arrData = new ArrayList<>();

dbHelper dbhelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txtChage = findViewById(R.id.txt);
    btnChage = findViewById(R.id.ShowRecylerView);
    recyclerView = findViewById(R.id.recyclerView);
    RemoveRecylerView = findViewById(R.id.RemoveRecylerView);


    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    RecyclerViewAdapter adapter = new RecyclerViewAdapter(this, arrnames);
    recyclerView.setAdapter(adapter);

    dbhelper = dbHelper.getDb(this);
    if (!dbhelper.CheckDb()) {
        dbhelper.CreateDb(this);
    }
    dbhelper.openDb();
    arrData = dbhelper.getData();

    for (int i = 0; i < arrData.size(); i++) {
        String name = arrData.get(i).getName();
        String address = arrData.get(i).getAddress();
        byte[] img = arrData.get(i).getImage();

        arrnames.add(new DataList(name, address, img));
        adapter.notifyDataSetChanged();
    }


    adapter.notifyDataSetChanged();

    btnChage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txtChage.setText("Recycler Visible");
            recyclerView.setVisibility(View.VISIBLE);
            btnChage.setVisibility(View.GONE);
            RemoveRecylerView.setVisibility(View.VISIBLE);
        }
    });
    RemoveRecylerView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txtChage.setText("Recycler Gone");
            recyclerView.setVisibility(View.GONE);
            btnChage.setVisibility(View.VISIBLE);
            RemoveRecylerView.setVisibility(View.GONE);

        }
    });
}

dbHelper.java

public class dbHelper extends SQLiteOpenHelper {
private static String Dbname = "StudentInfo.sqlite";
private String DbPath;
private SQLiteDatabase mainDb;

public dbHelper(Context context) {
    super(context, Dbname, null, 1);
    DbPath = "/data/data/" + context.getPackageName() + "/databases";
}

public static synchronized dbHelper getDb(Context context) {
    return new dbHelper(context);
}

public boolean CheckDb() {
    SQLiteDatabase database;
    try {
        database = SQLiteDatabase.openDatabase(DbPath + "/" + Dbname, null, SQLiteDatabase.OPEN_READONLY);
    } catch (Exception e) {
        database = null;
    }
    return database != null;
}

public void CreateDb(Context context) {
    this.getReadableDatabase();
    this.close();

    try {


        InputStream inputStream = context.getAssets().open(Dbname);

        String filepath = DbPath + "/" + Dbname;

        FileOutputStream fos = new FileOutputStream(filepath);

        byte[] bytes = new byte[1024];

        int length;

        while ((length = inputStream.read(bytes)) > 0) {
            fos.write(bytes, 0, length);
        }

        fos.close();
        fos.flush();
        inputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public ArrayList<DataList> getData() {
    Cursor cursor = mainDb.rawQuery("Select * from Profile", null);
    ArrayList<DataList> arrData = new ArrayList<>();

    while (cursor.moveToNext()) {
        String name = cursor.getString(1);
        String Address = cursor.getString(2);
        byte[] img = cursor.getBlob(3);
        arrData.add(new DataList(name, Address, img));

    }
    return arrData;
}

public void openDb() {
    mainDb = SQLiteDatabase.openDatabase(DbPath + "/" + Dbname, null, SQLiteDatabase.OPEN_READWRITE);
}


@Override
public void onCreate(SQLiteDatabase db) {


}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}}

DataList.java

public class DataList {

private int id;
private byte[] image;
private String name;
private String Address;

public DataList(String name, String Address, byte[] image) {

    this.name = name;
    this.Address = Address;
    this.image = image;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public byte[] getImage() {
    return image;
}

public void setImage(byte[] image) {
    this.image = image;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getAddress() {
    return Address;
}

public void setAddress(String Address) {
    this.Address = Address;
}

}

© www.soinside.com 2019 - 2024. All rights reserved.