編輯:關於Android編程
2中方法:
1.
public byte[] downloadResource(Context context, String url)
throws ClientProtocolException, IOException {
isStop = false;
ByteArrayBuffer buffer = null;
HttpGet hp = new HttpGet(url);
httpClient = new DefaultHttpClient();
String netType = isNetType(context);
if (netType != null & netType.equals("cmwap")) {
HttpHost proxy = new HttpHost("10.0.0.172", 80);
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,
proxy);
}
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),
5 * 1000);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60 * 1000);
HttpResponse response = httpClient.execute(hp);
if (response.getStatusLine().getStatusCode() == 200) {
inputstream = response.getEntity().getContent();
if (inputstream != null) {
int i = (int) response.getEntity().getContentLength();
buffer = new ByteArrayBuffer(1024);
byte[] tmp = new byte[1024];
int len;
while (((len = inputstream.read(tmp)) != -1)
&& (false == isStop)) {
buffer.append(tmp, 0, len);
}
}
cancel();
}
return buffer.toByteArray();
}調用方法:
protected Bitmap doInBackground(WonderfulprogramInfo... params)
{
Bitmap bitmap = null;
try
{
String urls = Constant.url + params[0].getWonderfulImgUrl();
boolean isExists = Files.compare(urls);
if (isExists == false)
{ //網絡下載圖片數據
Net net = new Net();
byte[] data = net.downloadResource(HomeActivity.this, urls);
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
imagesCache.put(urls, bitmap); // 把下載好的圖片保存到緩存中
Files.saveImage(urls, data);
} else
{ //本地讀取圖片數據
byte[] data = Files.readImage(urls);
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
// //獲取資源圖片
// InputStream is =
// context.getResources().openRawResource(resId);
// return BitmapFactory.decodeStream(is,null,opt);
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, opt);
imagesCache.put(urls, bitmap); // 把下載好的圖片保存到緩存中
}class DownLoadTask extends AsyncTask{ private ImageView imageView; private Integer positions; public DownLoadTask(ImageView view, int position) { imageView = view; this.positions = position; } protected Bitmap doInBackground(String... params) { URL url; try { url = new URL(params[0]); InputStream is = url.openStream(); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; // 獲取資源圖片 Bitmap bitmap = BitmapFactory.decodeStream(is, null, opt); HomeActivity.TopGalleryBitmap.put(positions, bitmap); return bitmap; } catch (OutOfMemoryError err) { err.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } protected void onPostExecute(Bitmap result) { super.onPostExecute(result); imageView.setImageBitmap(result); } }
Android 5.0學習之AnimatedVectorDrawable
前言示例代碼地址:animated-vector-drawable幾句代碼,幾個配置文件即可實現以上效果,流暢的體驗,無縫的動畫,贊~!官方文檔:點擊傳送VectorDr
Android開發之多線程中實現利用自定義控件繪制小球並完成小球自動下落功能實例
本文實例講述了Android開發之多線程中實現利用自定義控件繪制小球並完成小球自動下落功能的方法。分享給大家供大家參考,具體如下:1、布局界面<RelativeLa
Activity配置、啟動和關閉activity實例詳解
大家先看下效果圖:Android為我們提供了四種應組件,分別為Activity、Service、Broadcast receivers和Content providers
Android 百分比布局詳解及實例代碼
Android 百分比布局1.引入:compile com.android.support:percent:24.0.02.點開源碼可以看到,主要有兩個布局類Percen