实现输入图片地址浏览图片功能

本文介绍了如何在Android应用中实现在输入图片URL后浏览图片的功能。通过MainActivity类的实现,利用EditText获取URL,通过HttpURLConnection下载图片,并在ImageView中展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.UI设计;

2..实现功能的MainActivity类:

代码如下:

public class MainActivity extends Activity {
 private EditText etUrl;
 private ImageView ivImageShow;
 public static final int SHOWIMAGE=1;
 private Handler handler=new Handler(){
  public void handleMessage(Message msg){
   switch (msg.what) {   
   case SHOWIMAGE:
    Bitmap bitmap=(Bitmap) msg.obj;
    ivImageShow.setImageBitmap(bitmap);
    break;

   default:
    break;
   }
  };
 };

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

    private void initViews(){
     etUrl=(EditText)findViewById(R.id.etImageUrl);
     ivImageShow=(ImageView)findViewById(R.id.ivImage);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
  
    public void showImage(View view){
     final String path=etUrl.getText().toString();
     if(TextUtils.isEmpty(path)){
      Toast.makeText(this, "图片路径不能空", Toast.LENGTH_LONG).show();      
     }else{
      new Thread(){
       public void run(){
        try{
            URL url=new URL(path);
            HttpURLConnection connection=(HttpURLConnection) url.openConnection();
               connection.setRequestMethod("GET");
               connection.setConnectTimeout(5000);
               int responseCode=connection.getResponseCode();
               if(responseCode==200){
                InputStream inputStream=connection.getInputStream();
                   Bitmap bitmap=BitmapFactory.decodeStream(inputStream);
                
                   // ivImageShow.setImageBitmap(bitmap);
                   Message message=new Message();
                   message.what=SHOWIMAGE;
                   message.obj=bitmap;
                   handler.sendMessage(message);
               }
           }catch(MalformedURLException e){
            e.printStackTrace();
           } catch (IOException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }
       };
      }.start();
     }
    }
}

3.布局 activity_main.xml 代码如下:

   <EditText
        android:id="@+id/etImageUrl"
        android:layout_width="match_parent"
        android:layout_height="108dp"
        android:ems="10"       
        android:text="http://172.22.64.20:8080/test/images/0.jpg" />
        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/btnView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/button_bg"
        android:onClick="showImage"
        android:text="浏览" />
   
    <ImageView
        android:id="@+id/ivImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" />
   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值