照片没有出现在我的应用程序中。我的加载代码如下:
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/