微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android:如何通过SQlite的名称从服务器动态加载图像

我是 android的新手,我在从服务器显示来自sqlite的名称时遇到问题

即:
我只在sqlite数据库(列名图像)中存储图像名称(文本),我想根据图像想要在imageview中显示sqlite图像名称从服务器加载图像

在服务器中,我在该文件夹中创建一个像Cars这样的文件夹,我用汽车名称存储图像..但是在sqlite中我只是添加一个带有.jpeg文本格式的carname

我的数据库中有两个列名:

>首先是汽车名称
>第二是汽车细节

用户选择汽车名称时,在下一个活动中,用户可以看到带有图像的汽车详细信息.
这里我显示详细信息,但我不知道如何从服务器显示汽车图像

谢谢

这是我的代码

@Override
protected void onCreate(Bundle savedInstanceState) 
{


    super.onCreate(savedInstanceState);
    setContentView(R.layout.detail_activity);

    detailtext= (TextView) findViewById(R.id.detail);
    imageView= (ImageView) findViewById(R.id.images);

    Intent intent= getIntent();
    final String selectedData = intent.getStringExtra("selectedItem");
    actionBar.setTitle(selectedData);

    dbHelper = new sqlLiteDbHelper(this);
    try {
        dbHelper.openDataBase();
    } catch (sqlException e) {
        e.printstacktrace();
    }

    sqliteDatabase = dbHelper.getReadableDatabase();
    cursor=dbHelper.getdetails(sqliteDatabase,selectedData);

    if (cursor.movetoFirst()) {

    detailtext.setText(cursor.getString(0));
        String imagename = cursor.getString(1);
        String imageUrl = "http://your_server/car/" + imagename ;

        Picasso.with(this).load(imageUrl).into(imageView );
    }

注意:Image Field是第4列http://i.stack.imgur.com/lqvOQ.png
在服务器中我将图像放在www.server.com/cars/carnames.jpg中

sqlite中我只用.jpg ex:carnames.jpg粘贴图像名称

sqliteDbHelper

public Cursor getdetails(sqliteDatabase db,String img)
    {
        db=this.getReadableDatabase();
        Cursor cursor;
        cursor=db.query("record",new String[]{DETAIL,IMAGES,ITEMNO + " as _id"},SUBCATEGORY + "='" +img+"'",null,null);
        return cursor;
    }

解决方法

如果你想从sqlite加载图像,那么我建议你保存文件/文件位置,如果数据存储在本地,为了在所有图像视图上显示单个图像,因为你只是加载一个图像,你可能想要将所有id放入数组并将其传递给db,db查询还应该返回一个图像位置的数组/ arraylist,您应该使用for循环加载到图像视图中,例如我有一个加载一堆的查询来自我的sqlite数据库的图像显示一个名为shoes的特定类别的子类别图像,因此我们有智能鞋,休闲鞋以及更多的图像我传递一个Id作为参数
public ArrayList<CategoryItem> getAllSubCategories(int mtargetID) throws sqlException{



    ArrayList<CategoryItem> myshoes = new ArrayList<>();
    // Select All Query



    String sQuery = " SELECT "+Constant.CATEGORY_TB_ID+","+Constant.SUB_DESCRIPTION+
            ","+Constant.SUB_IMAGEPATH+" FROM  "+Constant.CATEGORY_TABLE+
    " INNER JOIN "+Constant.SUB_CATEGORY_TABLE+" ON "+Constant.CATEGORY_TB_ID +" = " +Constant.SUB_CATEGORY_FK
   + " WHERE "+Constant.CATEGORY_TB_ID +" = ?";

    String[] args = new String[1];
    args[0] = String.valueOf(mtargetID);


    sqliteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(sQuery,args);

    // looping through all rows and adding to list
    if (cursor.movetoFirst()) {
        do {
            CategoryItem myShoesItem = new CategoryItem();

            //my shoe image path on external storage
            myShoeItem.setmCategoryImgPath(cursor.getString(2));
            //i add my image paths to my array list
            myshoes.add(myShoeItem);
        } while (cursor.movetoNext());
    }

    // return my arraylist for display into my imageview
    return mshoes;

}

在接收方,然后我横穿我的araylist

for(int i = 0; i <getAllSubCategories.size(); i++ )
  {

       imageView.setimageUri(getAllSubCategories.get(i).getmCategoryImgPath())
   }

使用此方法,您可以将图像设置为所有图像视图.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐