您好我知道如何从jsonobject中获取字符串,但我的问题是如何从Rest api获取图像并显示它。图像在jsonobject
中存储为profile_image我的代码:
try {
JSONObject jsonObject = new JSONObject(response);
JSONObject object = jsonObject.getJSONObject("user");
String attr1 = object.getString("username");
data = "" + attr1;
textView15.setText(data);
if (object.has("profession")) {
String attr2 = object.getString("profession");
data2 = "" + attr2;
textView16.setText(data2);
}
if(object.has("company")){
String attr3 = object.getString("company");
data3 = "" + attr3;
textView38.setText(data3);
}
if(object.has("profile_image")) {
//what has to be done here
}
答案 0 :(得分:2)
有几种可能的情况:
Case 1.图像是Base64,然后你需要解码它并使用BitmapFactory方法:
byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Case 2. Json包含图片链接。只需加载链接,当您收到Stream对象时,将其传递给BitmapFactory。像这样:
InputStream instream = httpEntity.getContent();
bmp = BitmapFactory.decodeStream(instream);
上面的示例使用HttpClient类,搜索api文档,了解如何从您使用过的网络库中获取InputStream。
答案 1 :(得分:1)
如果您想使用Picasso Image库,可以这样做:
if (object.has("profile_image") {
Picasso.with(context).load(object.get("profile_image")).into(R.id.image_view);
}
答案 2 :(得分:1)
可以使用Picasso
在项目的build.gradle
文件中添加依赖项
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
compile 'com.squareup.picasso:picasso:2.4.0'
}
并在您的方法中添加代码,如下所示
if(object.has("profile_image")) {
// imageView should be declared in layout xml file with id `imageView`
ImageView imageView = (ImageView) context.findViewById(R.id.imageView);
com.squareup.picasso.Picasso.with(context).
load(object.get("profile_image")).
placeholder(R.mipmap.ic_launcher).
into(imageView);
}
并完成。
注意:
object.get("profile_image")
应该返回完整的图像路径。例如http://www.example.com/images/image1.jpg
然后才会起作用。
答案 3 :(得分:0)
如果您的图像数据在" profile_image"是Base64编码的字符串,然后您可以通过以下转换为位图。
while ($row = mysqli_fetch_assoc($result))
{
$userDataArray[$index] = $row;
$row = $userDataArray[$index];
echo "<tr><td>".$row['id']."</td>";
echo "<td>".$row['firstname']."</td>"";
echo "<td>".$row['email']."</td></tr>"";
$index++;
}