在Android中从SQL Server检索图像

时间:2017-05-15 10:23:29

标签: android sql-server image listview

当我将图像添加到res> drawable并使用数组显示它以在listview中显示它时它可以正常工作。但是如何从SQL Server数据库中检索图像。

这是我的MainCourse.java,它是main.java,用于显示图像。

package com.example.lenovo.redcabins;

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Created by Lenovo on 4/27/2017.
 */

public class MainCourseList extends ArrayAdapter<String> {
    private final Activity context;
    private final String[] itemname;
    private final Integer[] imgid;

    public MainCourseList(Activity context, String[] itemname, Integer[] imgid) {
        super(context, R.layout.maincourse, itemname);
        // TODO Auto-generated constructor stub

        this.context=context;
        this.itemname=itemname;
        this.imgid=imgid;
    }

    public View getView(int position, View view, ViewGroup parent) {
        LayoutInflater inflater=context.getLayoutInflater();
        View rowView=inflater.inflate(R.layout.maincourse, null,true);

        TextView txtTitle = (TextView) rowView.findViewById(R.id.lbl_maincourselist1);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.img_maincourse);
        TextView extratxt = (TextView) rowView.findViewById(R.id.lbl_maincourserlist2);

        txtTitle.setText(itemname[position]);
        imageView.setImageResource(imgid[position]);
        extratxt.setText("Description "+itemname[position]);
        return rowView;

    };

}

这是我的主课程列表java,其中包含用于显示图像的数组适配器

如何显示SQL Server中的图像?

我知道我必须创建一个连接类,我知道这样做的方法。我用来存储数据的图像类型是“图像”。如何将其更改为数组形式。我是初学者

2 个答案:

答案 0 :(得分:0)

据我所知,没有办法将数组中的所有图像从sql server下载到android。 有关详细信息Follow this link

答案 1 :(得分:0)

使用**Model Class**

class ImageData{

private String title;
private String Des;
private Uri uriImage; //store uri here
private String Base64; store image in form of string .!

}




public class BitmapConvertorUtility {

public static String encodeToBase64(Bitmap image, Bitmap.CompressFormat compressFormat, int quality)
{
    ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
    image.compress(compressFormat, quality, byteArrayOS);
    return Base64.encodeToString(byteArrayOS.toByteArray(), Base64.DEFAULT);
}

public static Bitmap decodeBase64(String input)
{
    byte[] decodedBytes = Base64.decode(input, 0);
    return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.length);
}




}

Bitmap image= BitmapConvertorUtility.decodeBase64(imageStr);

现在您只需要一个对象列表来填充您的所有数据。!

将所有数据加载到Object中然后在其中列出并将其传递给适配器。

您可以存储图像通过解码到Base64,或者在Sql Server中存储您的图像的Uri并使用它们的uri加载它们并将它们传递给Glide或Picasso来加载。!