2016-02-15 3 views
0

Что моя программа в настоящее время делает, он ищет в базе данных для идентификатора (занесено пользователем), и на основании, что он отображает название, и соответствующее «Picture.jpg "(это всего лишь строка).Получить изображение в ImageView динамически

Что я хочу сделать, я хочу взять строку (picture.jpg) и использовать , что для поиска на сервере. Таким образом, в конце концов, это должно быть что-то как:

http://192.168.1.254/images/picture.jpg. And it should also display the picture. 


    SecondActivity.java 

    This is how my whole code looks like: 

    package br.exemplozxingintegration; 

    import android.annotation.SuppressLint; 
import android.app.ProgressDialog; 
import android.content.ClipData; 
import android.content.ClipboardManager; 
import android.media.Image; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

    import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.ImageRequest; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 
import com.squareup.picasso.Picasso; 

    import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 



    public class SecondActivity extends AppCompatActivity implements View.OnClickListener { 



     private EditText pastetext; 
     private ClipboardManager myClipboard; 
     private ClipData myClip; 
     private Button btn; 
     private EditText textView1; 
     private Button buttonGet; 
     private TextView textViewResult; 
     private ImageView ImageView1; 

     private ProgressDialog loading; 


       @Override 
       protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 

        setContentView(R.layout.activity_second); 
        myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
        pastetext = (EditText) findViewById(R.id.textView1); 
        btn = (Button)findViewById(R.id.buttonPaste); 
        btn.performClick(); 




        textView1 = (EditText) findViewById(R.id.textView1); 
        buttonGet = (Button) findViewById(R.id.buttonGet); 
        textViewResult = (TextView) findViewById(R.id.textViewResult); 
        Image = (ImageView) findViewById(R.id.imageView1); 

        buttonGet.setOnClickListener(this); 

       } 



       @SuppressLint("NewApi") 
       public void paste(View view) { 
        ClipData cp = myClipboard.getPrimaryClip(); 
        ClipData.Item item = cp.getItemAt(0); 
        String text = item.getText().toString(); 
        pastetext.setText(text); 
        Toast.makeText(getApplicationContext(), "Text Pasted", 
          Toast.LENGTH_SHORT).show(); 


       } 


     private void getData() { 
      String qrcode = textView1.getText().toString().trim(); 
      if (qrcode.equals("")) { 
       Toast.makeText(this, "", Toast.LENGTH_LONG).show(); 
       return; 
      } 
      loading = ProgressDialog.show(this,"Please wait...","Fetching...",false,false); 

      String url = Config.DATA_URL+textView1.getText().toString().trim(); 

      StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        loading.dismiss(); 
        showJSON(response); 
       } 
      }, 
        new Response.ErrorListener() { 
         @Override 
         public void onErrorResponse(VolleyError error) { 
          Toast.makeText(SecondActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show(); 
         } 
        }); 

      RequestQueue requestQueue = Volley.newRequestQueue(this); 
      requestQueue.add(stringRequest); 
     } 

     private void showJSON(String response){ 
      String title=""; 
      String image = ""; 
      try { 
       JSONObject jsonObject = new JSONObject(response); 
       JSONArray result = jsonObject.getJSONArray(Config.JSON_ARRAY); 
       JSONObject androidData = result.getJSONObject(0); 
       title = androidData.getString(Config.KEY_TITLE); 
       image = androidData.getString(Config.KEY_IMAGE); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      textViewResult.setText("Title:\t" + title);//+"\nImagine :\t"+ image); 
      //int id = getResources().getIdentifier("http://192.168.1.254/2015/380panel/uploads/images/sm/" 
    + image, null, null); 
      //ImageView1.setImageURI(id); 
      Picasso.with(this).load("http://192.168.1.254/2015/380panel/uploads/images/sm/" 
    + image).into(ImageView1); 

     } 

     @Override 
     public void onClick(View v) { 
      getData(); 
     } } 



    // } 
+0

использование изображения загрузчик библиотек для загрузки URI изображения в изображение. Библиотеки, такие как Glide, Picasso могут быть полезны –

+0

Я знаю, что с библиотеками. Но мой вопрос в том, как я могу добавить строку по ссылке? – user3026270

+0

использование [универсальный загрузчик изображений] (https://github.com/nostra13/Android-Universal-Image-Loader) – KDeogharkar

ответ

0

Easy с Пикассо библиотеки: http://square.github.io/picasso/

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 
+0

Picasso.with (this) .load ("http://192.168.1.254/images/sm/" + image "). в (ImageView1); // где изображение - это моя строка. И в нем говорится:« Недопустимая строка end ins tring literal » – user3026270

+0

Picasso.with (this) .load (" 192.168.1.254/images/sm/ "+ образ ") в (ImageView1). (без точки с запятой) –

+0

И да, как @Rahul сказал, добавьте зависимость к градиенту –

0

Пикассо библиотеки: http://square.github.io/picasso/

Добавьте к этому Gradle файл в зависимость:

compile 'com.squareup.picasso:picasso:2.5.2' 

После добавления этой библиотеки, попробуйте URL загрузки изображения, как это.

Picasso.with(context).load("<Any Image URL>").into(imageView); 

Надеется, что это поможет!

0

Поскольку вы alreadu с помощью залп, нет необходимости использовать Picasso.Volley предоставляет вам NetworkImageView.Simply заменить ImageView в XML с com.android.volley.toolbox.NetworkImageView и в коде просто использовать

NetworkImageView image = (NetworkImageView)findViewById(R.id.imageView); 
image.setImageUrl("your url"); 
Смежные вопросы