php - 在 Android 应用程序中从 Mysql 加载照片

标签 php android mysql android-photos

照片没有出现在我的应用程序中。我的加载代码如下:

private static final String TAG = "ERROR";
private static final int IO_BUFFER_SIZE = 4 * 1024;
public static Bitmap loadBitmap(String url) {
    Bitmap bitmap = null;
    InputStream in = null;
    BufferedOutputStream out = null;

    try {
        Log.e(TAG, "OK0");

        in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE);
        Log.e(TAG, "OK1");

        final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
        out = new BufferedOutputStream(dataStream, IO_BUFFER_SIZE);
        copy(in, out);
        out.flush();

        final byte[] data = dataStream.toByteArray();
        BitmapFactory.Options options = new BitmapFactory.Options();
        //options.inSampleSize = 1;

        bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,options);
    } catch (IOException e) {
        Log.e(TAG, "Could not load Bitmap from: " + url);
    } finally {
        closeStream(in);
        closeStream(out);
    }

    return bitmap;
}

问题出在尝试的第一行:

in = new BufferedInputStream(new URL(url).openStream(), IO_BUFFER_SIZE);

和 php 文件:

    $objQuery = mysql_query("SELECT * FROM Photos WHERE 1");

    $intNumField = mysql_num_fields($objQuery);
    $resultArray = array();
    while($obResult = mysql_fetch_array($objQuery))
    {
            $arrCol = array();
            for($i=0;$i<$intNumField;$i++)
            {
                    $arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
            }
            array_push($resultArray,$arrCol);
    }

    mysql_close($con);

    echo json_encode($resultArray);

Android 中的输出是正确的 url,但不显示到 Imageview 中:

E/ERROR﹕ Could not load Bitmap from:xxxxx

我从其他页面获得了代码,因为我尝试了一些示例但从未起作用。仅当我将 url 放入 Android 时,但是当我可以从 Mysql 获取多个照片时,它永远不会仅向我显示正确的 url,所以我认为问题是当我尝试将 url 转换为位图时。

感谢您的回答。

最佳答案

您只需将字节数组从数据库转换为位图....

关于php - 在 Android 应用程序中从 Mysql 加载照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301813/

相关文章:

android - 存储android运行/调试配置IntelliJ idea和svn

android - 如何使用 intent startactivityforresult 方法?

android - 无法加载 memtrack 模块 Logcat 错误

java - 我需要为 mysql 表的每一行分配一个随机但唯一的 ID。如果行包含相同的值,则 ID 应该相同

php - 为什么 PHP XPath 找不到表元素,即使 Firefox 显示它们存在?

php - 如何做一个PHP钩子(Hook)系统?

php - 连接 2 个表的查询(使用 LIKE 和准备好的语句)

php - mySql 没有即时创建新表

javascript - 如何将套接字信息自动添加到MySQL

MySQL 高 CPU 使用率