【问题标题】:Retrieving Images from SQL Server in Android从 Android 中的 SQL Server 检索图像
【发布时间】:2017-05-15 10:23:28
【问题描述】:

当我将图像添加到 res>drawable 并使用数组显示它以在列表视图中显示它们时,它工作正常。但是如何从 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 的图像?

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

【问题讨论】:

  • 在sql server中存储图像的数据类型是'image'
  • 将它们的 ID 存储在您的 Sql 数据库或 Uri 中,然后检索它们并加载它们。?

标签: android sql-server image listview


【解决方案1】:

使用**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 来存储图像,或者将图像的 Uri 存储在 Sql Server 中并使用它们的 uri 加载它们并将它们传递给 Glide 或 Picasso 进行加载。!

【讨论】:

  • 现在我已将其更改为 varbinary(max) 能否提供代码示例以说明如何使用结果集获取图像
  • @JoeKevinRayan 编辑了我的回答也许对你有帮助。现在。!
【解决方案2】:

据我所知,没有办法将数组中的所有图像从 sql server 获取到 android。 欲了解更多信息Follow this link

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 2016-12-06
    • 2014-08-22
    • 2012-03-30
    • 2013-07-25
    • 2018-07-28
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多