- 浏览: 238343 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
江恂泽:
楼主 这家伙会把data 拆分开来 转换成day year形 ...
JsonUtil -
mdsp25xhm:
为何没有列表查询功能?
myBatis DAO封装
package com.example.dynamicimage;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.http.AndroidHttpClient;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends Activity
{
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("用图片填充GridView");
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
}
public class ImageAdapter extends BaseAdapter
{
private Context mContext;
// references to our images
// 地址自己去选择,可以尝试多个网站的,我试过百度的图片,不知为啥不可以?
private String[] myImageURL =
{
"http://pic3.nipic.com/20090520/2595280_225552071_2.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_2.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_3.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_4.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_5.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_6.jpg"
};
public ImageAdapter(Context c)
{
mContext = c;
}
public int getCount()
{
return myImageURL.length;
}
public Object getItem(int position)
{
return myImageURL[position];
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
/*
* ImageView
*/
ImageView imageView = new ImageView(this.mContext);
try
{
// // 在网络条件好的情况下使用已注释的方法
// URL aryURI = new URL(myImageURL[position]);
// // 打开连接
// URLConnection conn = aryURI.openConnection();
// conn.connect();
// // 转变为 InputStream
// InputStream is = conn.getInputStream();
// // 将InputStream转变为Bitmap
// Bitmap bm = BitmapFactory.decodeStream(is);
// Bitmap bm = getBitMap(mContext, myImageURL[position]);
Bitmap bm = downloadBitmap(myImageURL[position]);
if (bm == null)
{
bm = BitmapFactory.decodeResource(mContext.getResources(),R.drawable.ic_launcher);
Log.i("BitmapPicture", "picture is null!!");
}
/* 关闭InputStream */
// is.close();
/* 添加图片 */
imageView.setImageBitmap(bm);
}
catch (Exception e)
{
e.printStackTrace();
}
// 填充ImageView
imageView.setLayoutParams(new GridView.LayoutParams(150, 133));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(4, 2, 2, 2);
return imageView;
}
/**
* 即使在网速不好的时候也能加载图片. 扩展:因为联网比较慢,为了用户的友好,可以使用线程Handle,进度条
*
* @param c
* @param url
* @return
*/
public synchronized Bitmap getBitMap(Context c, String url)
{
URL myFileUrl = null;
Bitmap bitmap = null;
try
{
myFileUrl = new URL(url);
// 打开网络连接
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream(); // 把得到的内容转换成流
int length = (int) conn.getContentLength(); // 获取文件的长度
if (length != -1)
{
byte[] imgData = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0)
{
System.arraycopy(temp, 0, imgData, destPos, readLen);
destPos += readLen;
}
bitmap = BitmapFactory.decodeByteArray(imgData, 0,imgData.length);
}
}
catch (MalformedURLException e)
{
bitmap = BitmapFactory.decodeResource(c.getResources(),R.drawable.ic_launcher); // 当网络连接异常后,给个默认图片
return bitmap;
}
catch (IOException e)
{
bitmap = BitmapFactory.decodeResource(c.getResources(),R.drawable.ic_launcher);
return bitmap;
}
return bitmap;
}
public synchronized Bitmap downloadBitmap(String url)
{
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);
try
{
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK)
{
Log.w("ImageDownloader", "Error " + statusCode + " while retrieving bitmap from " + url);
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null)
{
InputStream inputStream = null;
try
{
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} finally
{
if (inputStream != null)
{
inputStream.close();
}
entity.consumeContent();
}
}
}
catch (Exception e)
{
// Could provide a more explicit error message for IOException or IllegalStateException
getRequest.abort();
}
finally
{
if (client != null)
{
client.close();
}
}
return null;
}
}
}
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.http.AndroidHttpClient;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
public class MainActivity extends Activity
{
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTitle("用图片填充GridView");
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new ImageAdapter(this));
}
public class ImageAdapter extends BaseAdapter
{
private Context mContext;
// references to our images
// 地址自己去选择,可以尝试多个网站的,我试过百度的图片,不知为啥不可以?
private String[] myImageURL =
{
"http://pic3.nipic.com/20090520/2595280_225552071_2.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_2.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_3.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_4.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_5.jpg",
"http://pic9.nipic.com/20100831/4164977_115736793120_6.jpg"
};
public ImageAdapter(Context c)
{
mContext = c;
}
public int getCount()
{
return myImageURL.length;
}
public Object getItem(int position)
{
return myImageURL[position];
}
public long getItemId(int position)
{
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
/*
* ImageView
*/
ImageView imageView = new ImageView(this.mContext);
try
{
// // 在网络条件好的情况下使用已注释的方法
// URL aryURI = new URL(myImageURL[position]);
// // 打开连接
// URLConnection conn = aryURI.openConnection();
// conn.connect();
// // 转变为 InputStream
// InputStream is = conn.getInputStream();
// // 将InputStream转变为Bitmap
// Bitmap bm = BitmapFactory.decodeStream(is);
// Bitmap bm = getBitMap(mContext, myImageURL[position]);
Bitmap bm = downloadBitmap(myImageURL[position]);
if (bm == null)
{
bm = BitmapFactory.decodeResource(mContext.getResources(),R.drawable.ic_launcher);
Log.i("BitmapPicture", "picture is null!!");
}
/* 关闭InputStream */
// is.close();
/* 添加图片 */
imageView.setImageBitmap(bm);
}
catch (Exception e)
{
e.printStackTrace();
}
// 填充ImageView
imageView.setLayoutParams(new GridView.LayoutParams(150, 133));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(4, 2, 2, 2);
return imageView;
}
/**
* 即使在网速不好的时候也能加载图片. 扩展:因为联网比较慢,为了用户的友好,可以使用线程Handle,进度条
*
* @param c
* @param url
* @return
*/
public synchronized Bitmap getBitMap(Context c, String url)
{
URL myFileUrl = null;
Bitmap bitmap = null;
try
{
myFileUrl = new URL(url);
// 打开网络连接
HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream(); // 把得到的内容转换成流
int length = (int) conn.getContentLength(); // 获取文件的长度
if (length != -1)
{
byte[] imgData = new byte[length];
byte[] temp = new byte[512];
int readLen = 0;
int destPos = 0;
while ((readLen = is.read(temp)) > 0)
{
System.arraycopy(temp, 0, imgData, destPos, readLen);
destPos += readLen;
}
bitmap = BitmapFactory.decodeByteArray(imgData, 0,imgData.length);
}
}
catch (MalformedURLException e)
{
bitmap = BitmapFactory.decodeResource(c.getResources(),R.drawable.ic_launcher); // 当网络连接异常后,给个默认图片
return bitmap;
}
catch (IOException e)
{
bitmap = BitmapFactory.decodeResource(c.getResources(),R.drawable.ic_launcher);
return bitmap;
}
return bitmap;
}
public synchronized Bitmap downloadBitmap(String url)
{
final AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
final HttpGet getRequest = new HttpGet(url);
try
{
HttpResponse response = client.execute(getRequest);
final int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != HttpStatus.SC_OK)
{
Log.w("ImageDownloader", "Error " + statusCode + " while retrieving bitmap from " + url);
return null;
}
final HttpEntity entity = response.getEntity();
if (entity != null)
{
InputStream inputStream = null;
try
{
inputStream = entity.getContent();
final Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
} finally
{
if (inputStream != null)
{
inputStream.close();
}
entity.consumeContent();
}
}
}
catch (Exception e)
{
// Could provide a more explicit error message for IOException or IllegalStateException
getRequest.abort();
}
finally
{
if (client != null)
{
client.close();
}
}
return null;
}
}
}
发表评论
-
IMF简介-2
2013-07-09 17:56 855InputManager 由UI控件(View,TextVie ... -
IMF简介-1
2013-07-09 17:51 776Input Method Framework 目录 ... -
输入法 总结-3
2013-07-08 15:02 819public class MainActivity exten ... -
输入法 总结-4
2013-07-04 17:29 902public class InputActivity exte ... -
输入法 总结-3
2013-07-04 17:28 832public class InputApplication e ... -
输入法 总结-2
2013-07-04 17:23 740openwnn_pref_ja.xml <?xml v ... -
输入法 总结-2
2013-07-04 17:21 13openwnn_pref_ja.xml <?xml v ... -
输入法 总结-1
2013-07-04 17:19 766<application android ... -
Android快捷键
2013-03-15 14:39 774Home键(小房子键) 在 ... -
如何通过wifi调试android程序
2013-02-27 15:48 717android手机居然可以通过wifi进行程序的调试,太好了, ... -
Please ensure that adb is correctly located at 'D:\android-sdk-windows\platform-
2013-02-27 14:27 1610adt 出现ADB server didn't ACK, fa ... -
Android AsyncTask
2013-02-19 09:35 1064AsyncTask是抽象类,子类 ... -
Android ViewPager 左右滑动2-1
2013-01-29 10:12 1409public class PagerActivity exte ... -
Android ViewPager 左右滑动-3
2013-01-29 10:10 1066<?xml version="1.0" ... -
Android ViewPager 左右滑动-2
2013-01-29 10:10 1404/*** * 选中效果 */ pu ... -
Android ViewPager 左右滑动-1
2013-01-29 10:09 1337Store extends ActivityGroup imp ... -
Android 下载
2013-01-27 00:59 869下载apk程序代码 protected File downLo ... -
Android SDCard操作-3
2013-01-26 18:31 846public static Intent getVid ... -
Android SDCard操作-2
2013-01-26 18:30 1034/** * 判断该应用在手机中的安装情况 ... -
Android SDCard操作-1
2013-01-26 18:27 1000private static int INSTALLED = ...
相关推荐
android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!
android GridView搜索并显示SD卡上的图片,很不错的例子。
AndroidStudio开发平台。通过url加载显示图片资源,加载过程中进行了缓存和分页加载的优化。同时对当前视图中不可见的图片资源进行了回收处理。
Android完美解决GridView异步加载图片和加载大量图片时出现Out Of Memory问题
Android中GridView以表格形式显示多张图片(仿桌面),详细了解请移步http://blog.csdn.net/zxc514257857/article/details/70478537
android-GridView显示图片点击放大,本人亲测,可以使用,放心下载吧!!
文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...
本示例代码,解决了在Android中使用GridView和ViewPager显示图片时出现的内存溢出(OOM),加载缓慢,异步加载图片错位等问题。
用异步加载方式解决GridView加载大量图片出现卡顿的问题。可以查看博文http://blog.csdn.net/yifei1989/article/details/19906821
在使用 GridView的时候,有时需要多选上面显示的类容,比如批量删除上面显示的图片,批量上传图片等。这个时候我们可以使用层叠图来实现,当用户点击item时候,会多一个打钩的图片出来,给用户提示,他选择了该项。
android 开发 利用gridview读取图片并显示
listview/gridview加载显示大量图片,对内存和性能都是严峻的考验。常引起OOM,滚动卡顿等问题。该示例代码完美解决了上述问题。主要用到的技术有: 1. 用MemoryCache缓存图片信息,采用SoftReference方式避免OOM。 ...
通过GridView来读取sdcard某个文件夹下面的图片,显示到GridView上,点击使用ViewFlipper进行图片浏览
主要介绍了Android开发之使用GridView展示图片的方法,涉及Android使用GridView操作图片的布局与图片调用功能实现技巧,需要的朋友可以参考下
解决了第一版(http://download.csdn.net/detail/wangjiang_qianmo/8789451)中残留下的第一张图片不能显示和部分机型图片旋转了的问题
主要介绍了Android GridView仿微信朋友圈显示图片,上传多图并且多图显示,GridView可以动态加载图片的数量,感兴趣的小伙伴们可以参考一下
Android高级应用源码-横向GridView显示图片(增强版).zip
解决了在Android显示过图片导致的OOM,并使用Gridview和ViewPager对图片显示进行优化处理。
BitmapFun的简化版,网络加载图片,LruCache处理缓存
android 网格组件9宫格,GridView展示数据 3*3排列显示。鼠标点击其中一个网格 会触发事件,并传递参数