0

i have error code help me to fix it, getting text URL from edittext after click button and showing image on imageView,

MainActivity.java

public class MainActivity extends Activity {

Button bt;
EditText et;
ImageView iv;
Runnable stream;

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    loadGambar();

    stream = new Runnable() {



@Override
        public void run() {
            try {
                loadGambar();
            } catch (Exception e) {
                e.getStackTrace();
            }
            new Handler().postDelayed(stream, 2);
        }
    };
    new Handler().postDelayed(stream, 2);
}

private void loadGambar(){
    try {
        iv = (ImageView) findViewById(R.id.imageView1);
        et = (EditText) findViewById(R.id.editText1);
        bt = (Button) findViewById(R.id.button1);



bt.setOnClickListener(new view.OnClickListener() {  
            public void onClick(View view) {
                    et   = (EditText)findViewById(R.id.editText1);
                    iv = (ImageView)findViewById(R.id.imageView1);
                    iv.setBackground(et.getText().toString());

            }
        });



URL url = new URL (et.getText().toString());
        InputStream is =  (InputStream) url.getContent();
        Drawable gambar = Drawable.createFromStream(is, "src");
        iv.setImageDrawable(gambar);
        is.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

acitvity_main.xml

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="18dp"
    android:ems="10" android:inputType="textUri">

    <requestFocus />
</EditText>

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/editText1"
    android:layout_marginTop="21dp"
    android:text="@string/button" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/button1"
    android:layout_marginTop="18dp"
    android:src="@drawable/ic_action_search" android:contentDescription="@string/app_name"/>

how i can show after input URL to edittext and pressed button to show image from URL

2 Answers2

0

You trying to set String as a background of your Imageview. You need to load Image from URL. Read this tutorial for fetching Image from URL Or check this answer.

Community
  • 1
  • 1
Rahul
  • 10,457
  • 4
  • 35
  • 55
0
  1. First you have to download Android query jar from here.

    Android query is easily downloaded or load image from URL based on AJAX call.

  2. Add jar to project libs folder and add jar to build path.

  3. Activity code

public class MainActivity extends Activity {

Button bt;
EditText et;
ImageView iv;

private AQuery androidQuery;

@Override
 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

bt = (Button) findViewById(R.id.bt);
et = (EditText) findViewById(R.id.et);
iv = (ImageView) findViewById(R.id.imageView1);
androidQuery = new AQuery(this);

bt.setOnClickListener(new OnClickListener() {
    
    @Override
    public void onClick(View arg0) {
        if(et.getText().toString().trim().length()>0){
        // this code load image form url
         androidQuery.image(et.getText().toString(), true, true); 
                                /*or*/
         // this code download image
         androidQuery.ajax(et.getText().toString(), Bitmap.class, 0, new AjaxCallback<Bitmap>() {
                @Override
                public void callback(String url, Bitmap object, AjaxStatus status) {
                    super.callback(url, object, status);
                    if(object!=null){
                        iv.setImageBitmap(object);
                    }else{
                        // write message if give path image not found
                    }
                }
            });
        }
    }
});
}



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
     getMenuInflater().inflate(R.menu.activity_main, menu);
      return true;
    }
Community
  • 1
  • 1
Haresh Chhelana
  • 24,720
  • 5
  • 57
  • 67