zoukankan      html  css  js  c++  java
  • ImageView学习

    package liu.roundimagedemo.view;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.drawable.Drawable;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v4.graphics.drawable.RoundedBitmapDrawable;
    import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory;
    import android.util.AttributeSet;
    import android.widget.ImageView;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    /**
     * Created by 刘楠 on 2016/8/31 0031.22:14
     */
    public class NetImageView extends ImageView {
    
        Bitmap mBitmap;
    
        /**
         * 是否为圆形
         */
        private boolean isRound = false;
    
        public void setRound(boolean round) {
            isRound = round;
        }
    
        Handler mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                //super.handleMessage(msg);
               if(!isRound){
                   setImageBitmap(mBitmap);
                   return;
               }
    
                Drawable drawable =createRoundBitmap(mBitmap);
    
    
                setImageDrawable(drawable);
    
            }
        };
    
        /**
         * 建立圆形图片
         * @param src
         * @return
         */
        private Drawable createRoundBitmap(Bitmap src) {
    
            Bitmap dst;
    
            if(src.getWidth()>src.getHeight()){
                dst = Bitmap.createBitmap(src,src.getWidth()/2-src.getHeight()/2,0,src.getHeight(),src.getHeight());
            }else {
                dst = Bitmap.createBitmap(src,0,src.getHeight()/2-src.getWidth()/2,src.getWidth(),src.getWidth());
            }
    
    
            RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(),dst);
    
            roundedBitmapDrawable.setAntiAlias(true);
    
            roundedBitmapDrawable.setCornerRadius(dst.getWidth()/2);
    
    
            return roundedBitmapDrawable;
        }
    
        public NetImageView(Context context) {
            super(context);
        }
    
        public NetImageView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
    
        /**
         * 设置本地文件的图片
         * @param url
         */
        public void setLocalImage(String url){
    
            FileInputStream fis =null;
            try {
                fis  = new FileInputStream(url);
    
                mBitmap = BitmapFactory.decodeStream(fis);
    
                mHandler.sendEmptyMessage(0x1324);
                //setImageBitmap(decodeStream);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }finally {
                if(fis!=null){
                    try {
                        fis.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
    
        /**
         * 设置资源文件
         * @param resId
         */
        public void setResourceImage(int resId){
    
    
           mBitmap = BitmapFactory.decodeResource(getResources(), resId);
            mHandler.sendEmptyMessage(0x133);
           // setImageBitmap(bitmap);
        }
    
    
        public void setUrlImage(final String url){
           new Thread(){
               @Override
               public void run() {
                   try {
                       URL uri = new URL(url);
    
                       HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
    
    
                      // conn.setConnectTimeout(100);
                      // conn.setDoInput(true);
    
                      // conn.setReadTimeout(100);
                       int responseCode = conn.getResponseCode();
    
                       if(responseCode==200){
                           InputStream is = conn.getInputStream();
    
                           mBitmap = BitmapFactory.decodeStream(is);
                           mHandler.sendEmptyMessage(0x343);
                           is.close();
                       }
    
    
                   } catch (MalformedURLException e) {
                       e.printStackTrace();
                   } catch (IOException e) {
                       e.printStackTrace();
                   }finally {
    
                   }
               }
           }.start();
        }
    }
  • 相关阅读:
    sql插入临时表数据的方法
    bootstrap中模态框、模态框的属性
    前台页面实现拖拽图片,拖拽图片排序
    生成二维码,二维码的生成
    bootstrap表格分页
    Python 处理Excel内的数据(案例介绍*2)
    微博数据抓取练习
    微信小程序开发笔记(二)
    微信小程序开发笔记(一)
    UCI 人口收入数据分析(python)
  • 原文地址:https://www.cnblogs.com/liunanjava/p/5827929.html
Copyright © 2011-2022 走看看