android 存在数据库中的动态图片,如何读取出来,显示在ImageView中

android 存在数据库中的动态图片,如何读取出来,显示在ImageView中,第1张

实现的功能为从服务器获取数据,在布局页面上显示。由于的个数是不确定的,因此采用在布局页面中定义多个ImageView来显示是不合理的。

(一)首先定义布局

android:id="@+id/id_layout_movie"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

(二)加载显示时获取到布局文件

RelativeLayout rl_Movie = (RelativeLayout) findViewById(Ridid_layout_movie);

(三)依次循环服务器获取的数据,一张一张设置显示的位置

//newWidth为显示的宽度,newHeight为显示的高度

RelativeLayoutLayoutParams lp1 = new RelativeLayoutLayoutParams( newWidth, newHeight);

设置lp1leftMargin和lp1topMargin的值

(四)最后设置rl_MovieaddView(iv, lp1)将加入布局文件中

数据库获取代码如下:

String databaseFilename = DATABASE_PATH + "/" + DATABASE_NAME;

File dir = new File(DATABASE_PATH);

if (!direxists())

dirmkdir();

if (!(new File(databaseFilename))exists()) {

InputStream is = contextgetResources()openRawResource(Rrawjobexam);

FileOutputStream fos = new FileOutputStream(databaseFilename);

byte[] buffer = new byte[8192];

int count = 0;

while ((count = isread(buffer)) > 0) {

foswrite(buffer, 0, count);

}

fosclose();

isclose();

}

db = SQLiteDatabaseopenOrCreateDatabase(databaseFilename, null);

AlertDialogBuilder builder=new AlertDialogBuilder(this)

setTitle("对话框")

setSingleChoiceItems(thisgetResources()getStringArray(Rarraybefore_time)

将你数据库里读取出来的东西放到一个数组里边,通过调用放到上边的括号里边就可以啦。

thisgetResources()getStringArray(Rarraybefore_time)//调用在array文件中自己定义的数组

您好,请您把SimpleCursorAdapter全部替换掉:

DatabaseActivityjava

package compoqopdatabase;

import javaioFile;

import javaioFileNotFoundException;

import javaioFileOutputStream;

import javaioIOException;

import javaioInputStream;

import javaioOutputStream;

import androidappActivity;

import androiddatabaseCursor;

import androidosBundle;

import androidviewLayoutInflater;

import androidwidgetCursorAdapter;

import androidwidgetListView;

import androidwidgetSimpleCursorAdapter;

import androidwidgetToast;

import compoqopR;

public class DatabasesActivity extends Activity {

public LayoutInflater m;

ListView listView;

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

setContentView(Rlayoutmaintable);

DBAdapter db = new DBAdapter(this);

try {

String destPath = "/data/data/" + getPackageName() +

"/databases";

File f = new File(destPath);

if (true) {//!fexists()) {

fmkdirs();

fcreateNewFile();

//---copy the db from the assets folder into

// the databases folder---

CopyDB(getBaseContext()getAssets()open("mydb"),

new FileOutputStream(destPath + "/MyDB"));

}

} catch (FileNotFoundException e) {

eprintStackTrace();

} catch (IOException e) {

eprintStackTrace();

}

listView=(ListView)findViewById(Ridshow3);

dbopen();

for(int a=1;a<=3;a++)

{

int rowID=a;

Cursor c = dbgetTitle(rowID);

if (cmoveToFirst())

inflateList(c);

else

ToastmakeText(this, "No title found",

ToastLENGTH_LONG)show();

}

dbclose();

}

public void CopyDB(InputStream inputStream,

OutputStream outputStream) throws IOException {

//---copy 1K bytes at a time---

byte[] buffer = new byte[1024];

int length;

while ((length = inputStreamread(buffer)) > 0) {

outputStreamwrite(buffer, 0, length);

}

inputStreamclose();

outputStreamclose();

}

public void inflateList(Cursor c)

{

// 填充SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(

DatabasesActivitythis,

Rlayoutline, c,

new String[] { "_id", "name","email" }

, new int[] {Ridmy_title, Ridmy_content,Ridmy_content2},

CursorAdapterFLAG_REGISTER_CONTENT_OBSERVER); //③

// 显示数据

listViewsetAdapter(adapter);

}

}

DBAdapterjava

package compoqopdatabase;

import javautilHashMap;

import compoqopR;

import androidcontentContentValues;

import androidcontentContext;

import androiddatabaseCursor;

import androiddatabaseSQLException;

import androiddatabasesqliteSQLiteDatabase;

import androiddatabasesqliteSQLiteOpenHelper;

import androidutilLog;

import androidviewView;

import androidviewViewGroup;

import androidwidgetBaseAdapter;

import androidwidgetImageView;

import androidwidgetTextView;

public class DBAdapter

{

public static final String KEY_ROWID = "_id";

public static final String KEY_NAME = "name";

public static final String KEY_EMAIL = "email";

private static final String TAG = "DBAdapter";

private static final String DATABASE_NAME = "MyDB";

private static final String DATABASE_TABLE = "contacts";

private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =

"create table titles (_id integer primary key autoincrement, "

+ "isbn text not null, title text not null, "

+ "publisher text not null);";

private final Context context;

private DatabaseHelper DBHelper;

private SQLiteDatabase db;

public DBAdapter(Context ctx)

{

thiscontext = ctx;

DBHelper = new DatabaseHelper(context);

}

private static class DatabaseHelper extends SQLiteOpenHelper

{

DatabaseHelper(Context context)

{

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db)

{

dbexecSQL(DATABASE_CREATE);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion,

int newVersion)

{

Logw(TAG, "Upgrading database from version " + oldVersion

+ " to "

+ newVersion + ", which will destroy all old data");

dbexecSQL("DROP TABLE IF EXISTS titles");

onCreate(db);

}

}

//---打开数据库---

public DBAdapter open() throws SQLException

{

db = DBHelpergetWritableDatabase();

return this;

}

//---关闭数据库---

public void close()

{

DBHelperclose();

}

//---向数据库中插入一个标题---

public long insertTitle(String name, String email)

{

ContentValues initialValues = new ContentValues();

initialValuesput(KEY_NAME, name);

initialValuesput(KEY_EMAIL, email);

return dbinsert(DATABASE_TABLE, null, initialValues);

}

//---删除一个指定标题---

public boolean deleteTitle(long rowId)

{

return dbdelete(DATABASE_TABLE, KEY_ROWID +

"=" + rowId, null) > 0;

}

//---检索所有标题---

public Cursor getAllTitles()

{

return dbquery(DATABASE_TABLE, new String[] {

KEY_ROWID,

KEY_NAME,

KEY_NAME},

null,

null,

null,

null,

null);

}

//---检索一个指定标题---

public Cursor getTitle(long rowId) throws SQLException

{

Cursor mCursor =

dbquery(true, DATABASE_TABLE, new String[] {

KEY_ROWID,

KEY_NAME,

KEY_EMAIL},

KEY_ROWID + "=" + rowId,

null,

null,

null,

null,

null);

if (mCursor != null) {

mCursormoveToFirst();

}

return mCursor;

}

//---更新一个标题---

public boolean updateTitle(long rowId, String name,

String email)

{

ContentValues args = new ContentValues();

argsput(KEY_NAME, name);

argsput(KEY_EMAIL, email);

return dbupdate(DATABASE_TABLE, args,

KEY_ROWID + "=" + rowId, null) > 0;

}

}

maintablexml

<xml version="10" encoding="utf-8">

<LinearLayout xmlns:android=">

您好,我来为您解答:

建议LZ的em采用LinearLayout布局,设置android:orientation="horizontal"

,在布局里面放置条码和数量的TextView,调整位置对齐就可以了。

如果我的回答没能帮助您,请继续追问。

本地数据就用ormlite-android-419jar和ormlite-core-419jar 可以帮助你管理本地数据,网络上的数据应该要后台做接口让你去调用,adapter可以写一个方法addpendList或者setList,这两个方法都是控制当前adapter持有的list的,adapter可以持有这个list并且给每个item设置布局。

本地得到的数据就是List,如果是服务器的数据就是JSON格式,可以用JSONUtiljava之类的去解析然后获取list,不是list的数据就直接resgetString("name");

ListViewSetAdapter();就可以设置adapter了,然后adapter如果有数据就会填充List

刷新的话是adapternotifyDataSetChanged();

本地数据就用ormlite-android-419jar和ormlite-core-419jar 可以帮助你管理本地数据,网络上的数据应该要后台做接口让你去调用,adapter可以写一个方法addpendList或者setList,这两个方法都是控制当前adapter持有的list的,adapter可以持有这个list并且给每个item设置布局。

本地得到的数据就是List,如果是服务器的数据就是JSON格式,可以用JSONUtiljava之类的去解析然后获取list,不是list的数据就直接resgetString("name");

ListViewSetAdapter();就可以设置adapter了,然后adapter如果有数据就会填充List

刷新的话是adapternotifyDataSetChanged();

以上就是关于android 存在数据库中的动态图片,如何读取出来,显示在ImageView中全部的内容,包括:android 存在数据库中的动态图片,如何读取出来,显示在ImageView中、android怎样实现用代码从数据库获取短信内容等等、android 如果将dialog列表的数据从数据库获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9293937.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存