Android 在imageview应用程序上显示图像
我使用glide显示url中的图像。当我使用调试器时,url包含图像。但问题是当应用程序运行时,它会关闭。imageview的代码中有什么要做的吗?请帮助我恢复此问题。如果我问错了,请原谅。提前感谢。我的代码如下所示Android 在imageview应用程序上显示图像,android,Android,我使用glide显示url中的图像。当我使用调试器时,url包含图像。但问题是当应用程序运行时,它会关闭。imageview的代码中有什么要做的吗?请帮助我恢复此问题。如果我问错了,请原谅。提前感谢。我的代码如下所示 public class ProductImages extends AsyncTask<Void , Void, Void> { int status;StringBuilder sb; String strJson, post
public class ProductImages extends AsyncTask<Void , Void, Void> {
int status;StringBuilder sb;
String strJson, postData;
JSONArray jsonArray;
String msg;
boolean pass=false;
ArrayList<String> imgurls=new ArrayList<>();
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... arg0) {
String url =getResources().getString(R.string.url) + "WebServices/WebService.asmx/ProductImages";
HttpURLConnection c = null;
try {
postData = "{\"productID\":\"" + productID + "\",\"TID\":\"" + constants.TID + "\"}";
String response=db.GetResponses(url,postData);
if(!response.equals("")){
strJson=response;
}
else {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("POST");
c.setRequestProperty("Content-type", "application/json; charset=utf-16");
c.setRequestProperty("Content-length", Integer.toString(postData.length()));
c.setDoInput(true);
c.setDoOutput(true);
c.setUseCaches(false);
c.setConnectTimeout(10000);
c.setReadTimeout(10000);
DataOutputStream wr = new DataOutputStream(c.getOutputStream());
wr.writeBytes(postData);
wr.flush();
wr.close();
status = c.getResponseCode();
switch (status) {
case 200:
case 201: BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
br.close();
int a=sb.indexOf("[");
int b=sb.lastIndexOf("]");
strJson=sb.substring(a, b + 1);
// strJson=cryptography.Decrypt(strJson);
strJson="{\"JSON\":" + strJson.replace("\\\"","\"").replace("\\\\","\\") + "}";
}
}
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
msg=ex.getMessage();
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
msg=ex.getMessage();
}
}
}
if(strJson!=null)
{try {
JSONObject jsonRootObject = new JSONObject(strJson);
jsonArray = jsonRootObject.optJSONArray("JSON");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
msg=jsonObject.optString("Message");
pass=jsonObject.optBoolean("Flag",true);
imgurls.add(getResources().getString(R.string.url) + jsonObject.optString("Image").substring((jsonObject.optString("Image")).indexOf("Media")));
if(jsonObject.optBoolean("IsMain")){
productImage=getResources().getString(R.string.url) + jsonObject.optString("Image").substring((jsonObject.optString("Image")).indexOf("Media"));
}
}
if(pass){
if(c!=null)
db.ResponsesSaving(url,postData,strJson,"null");
}
} catch (Exception ex) {
msg=ex.getMessage();
}}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if(!pass) {
new AlertDialog.Builder(EnquiryItem.this).setIcon(android.R.drawable.ic_dialog_alert)//.setTitle("")
.setMessage(msg)
.setPositiveButton(R.string.ok_button, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).setCancelable(false).show();
}
else {
for (int i=0;i<imgurls.size();i++) {
final int fi=i;
ImageView imageView = (ImageView) findViewById(R.id.image);
Glide.with(EnquiryItem.this).load(imgurls).into(imageView);
}
}
}
**My image view**
<ImageView
android:id="@+id/image"
android:layout_width="170dp"
android:layout_height="170dp"
android:layout_above="@+id/textView22"
android:layout_alignLeft="@+id/textView22"
android:layout_alignStart="@+id/textView22"
android:layout_gravity="center"
android:layout_marginBottom="16dp"
android:background="@drawable/back"
Glide不需要在
AndroidMinifest.xml
中声明GlideModule。您只需执行以下步骤:
GlideApp.with(this)
.load(imagegUrl)
.into(imageview)
共享崩溃日志发布崩溃日志。将日志消息复制到致命异常错误所在的位置,并将其粘贴到此处以供查看us@TRIENTRAN是的brohey bro,ProductImages类是放在单独的java类中还是放在InquiryItem类中?@Dhansri我通过“make project”创建了项目。但是GlideApp并没有被创建,请尝试使用占位符而不是加载,它可以正常工作。使用(inquiryItem.this).load(“”).placeholder.imageView)中的(“”;
GlideApp.with(this)
.load(imagegUrl)
.into(imageview)