【问题标题】:showing image use after input text URL and press button在输入文本 URL 并按下按钮后显示图像使用
【发布时间】:2013-08-25 06:05:44
【问题描述】:

我有错误代码帮我修复它,点击按钮后从edittext获取文本URL并在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"/>

我如何在输入 URL 到 edittext 并按下按钮以显示来自 URL 的图像后显示

【问题讨论】:

  • 您遇到什么错误?你能简单地说一下你想要达到的目标吗?
  • 我在 bt.setClickOnlistener 上出错了,
  • 你遇到了什么错误。粘贴您的 Logcat 跟踪

标签: android android-layout imageview android-edittext imagebutton


【解决方案1】:

您试图将字符串设置为 Imageview 的背景。您需要从 URL 加载图像。阅读此tutorial 以从 URL 获取图像或检查此answer。

【讨论】:

  • 我在 iv.setBackground(et.getText().toString()) 上遇到错误;我该如何解决?我必须移动 SetClickListener
  • 如何更改它以显示图像?我是安卓新手
  • 好的,我试试看,如果我有错误,我会将错误代码和图像发送给您
  • 仍然可以解决,我有两个活动,但在单击按钮后移动到其他活动,但 URL 可以在单击按钮后从 edittext 获取文本
  • 你 rahul 的 gmail 名字?我现在就寄出去
【解决方案2】:
  1. 首先你必须从here下载Android查询jar。

    Android 查询很容易从基于 AJAX 调用的 URL 下载或加载图像。

  2. 将 jar 添加到项目 libs 文件夹并将 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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 2014-05-04
    • 2020-12-04
    • 1970-01-01
    • 2012-07-24
    • 2017-12-17
    相关资源
    最近更新 更多