編輯:關於android開發
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(); } }
手機安全衛士——閃屏頁相關處理,手機安全衛士根據功能模塊劃分(Android開發推薦此方法) - Activity mo
多選按鈕(CheckBox),多選按鈕checkbox今天我們介紹的是Checkbox多選框: 1.Activity //復選框,[基礎控件]---狀態切換控件Com
eclipse安裝genymotion插件。,eclipsegenymotion 先發個我自己壓縮的genymotion和Virtu
MSM8909+Android5.1.1鍵盤驅動淺析 MSM8909+Android5.1.1鍵盤驅動------概述 采用SN7326帶智能指掃描的鍵