0

我有錯誤代碼,幫我解決這個問題,讓文字網址從EditText上點擊按鈕後顯示在ImageView的圖像,後輸入文本URL,然後按按鈕顯示圖像使用

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"/> 

我怎麼能inpu後顯示t URL編輯文本並按下按鈕以顯示來自URL的圖像

+0

你得到什麼錯誤?你能簡單地告訴你想要達到的目標嗎? – Rahul

+0

我在bt.setClickOnlistener上出錯, –

+0

你得到了什麼錯誤。粘貼您的Logcat跟蹤 – Rahul

回答

0

您試圖將String設置爲您的背景Imageview。您需要從URL加載圖像。閱讀此tutorial從URL獲取圖像或檢查此answer

+0

我在\t上發生錯誤iv.setBackground(et.getText()。toString());我如何解決它?我必須移動SetClickListener –

+0

如何更改它才能顯示圖像?我是機器人的新手 –

+0

好吧,我嘗試這是toturial,如果我有錯誤,我發送給你的錯誤代碼和圖像 –

0
  1. 首先,你必須從here下載Android查詢罐子。

    Android查詢很容易下載或基於AJAX調用從URL加載圖像。

  2. 將jar添加到項目庫文件夾並添加jar來構建路徑。

  3. 活動代碼

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; 
    } 
相關問題