当前位置:  编程技术>移动开发
本页文章导读:
    ▪领航控制器Nav和UITableView的使用        导航控制器Nav和UITableView的使用 转载http://haoxu.iteye.com/blog/815286http://haoxu.iteye.com/blog/815887 ......
    ▪ 关于ListView中异步加载图片时,图片显示异常的有关问题        关于ListView中异步加载图片时,图片显示错误的问题 关于ListView的优化网上有不是的文件介绍,比如: http://shazhuzhu1.iteye.com/blog/985911   也就是使用缓存convertView的形式,避免重新findViewById的.........
    ▪ 调用系统照相机拍照保存       调用系统相机拍照保存 public class CameraActivity extends Activity { private static int TAKE_PICTURE = 1; private Uri outputFileUri; private File file; private String filename,filepath; private Bitmap bmp = null; protected void onCre.........

[1]领航控制器Nav和UITableView的使用
    来源: 互联网  发布时间: 2014-02-18
导航控制器Nav和UITableView的使用
转载
http://haoxu.iteye.com/blog/815286
http://haoxu.iteye.com/blog/815887

    
[2] 关于ListView中异步加载图片时,图片显示异常的有关问题
    来源: 互联网  发布时间: 2014-02-18
关于ListView中异步加载图片时,图片显示错误的问题

关于ListView的优化网上有不是的文件介绍,比如:

http://shazhuzhu1.iteye.com/blog/985911

 

也就是使用缓存convertView的形式,避免重新findViewById的时间开销。

 

这个地方有一种很常见的情况未说明:

当被缓存的convertView里面包含ImageView并且图片数据又是从网上获取的时候,就会出现ListView中某个和多个位置的图片不断变换的问题。

 

原因是被缓存的convertView并不只是缓存了View的结构,而是把上个View全部内容都缓存了包括图片。这就造成每次都先显示已经出现的图片,然后才被替换为正确的图片。

 

而图片的不停变换的问题则是如下代码的原因:

		asyncImageLoader.loadDrawable(stringList.get(position).get()[1], new AsyncImageLoader.ImageCallback() {
			@Override
			public void imageLoaded(Drawable imageDrawable, String imageUrl) {
				if(imageDrawable != null){
					imageView.setImageDrawable(imageDrawable);
				}
			}
		});
 

这是一段异步加载图片的代码。

当ListView被快速滑动时,因为缓存了convertView所以如果有N此调用这个异步加载图片的方法,则此convertView的图片就会被设置N次。

当最后一次显示convertView时,其当前显示的图片则根据前几次异步加载的图片进行显示,优先加载完成的图片被优先显示。

 

解决方法:

1.不使用缓存的convertView,每次都重新inflate一个新的

2.不使用XML通过代码自己构造convertView,避免掉配置文件的解析时间

1 楼 changliangno1 2012-05-22  
勉强接受第二种做法,而且是只new imageview,然后再添加到itemView中去。

我自己的做法是自定义imageView再其中添加刷新drawable的方法
2 楼 酷的飞上天空 2012-05-25  
changliangno1 写道
勉强接受第二种做法,而且是只new imageview,然后再添加到itemView中去。

我自己的做法是自定义imageView再其中添加刷新drawable的方法


可以使用给缓存的view设置tag的方式解决
参考http://314858770.iteye.com/blog/1442272

    
[3] 调用系统照相机拍照保存
    来源: 互联网  发布时间: 2014-02-18
调用系统相机拍照保存
public class CameraActivity extends Activity {
	private static int TAKE_PICTURE = 1;
	private Uri outputFileUri;
	private File file;
	private String filename,filepath;
	private Bitmap bmp = null;	

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		saveFullImage();
	}

	private void saveFullImage() {

		filename = String.valueOf("img-imagename" + ".jpg");
		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		File f = new File(Environment.getExternalStorageDirectory()
				+ "/Images");
		if (!f.exists()) {
			f.mkdirs();
		}

		filepath = f.getPath();
		File file = new File(filepath, filename);
		outputFileUri = Uri.fromFile(file);

		intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
		startActivityForResult(intent, TAKE_PICTURE);

	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {

		if (requestCode == TAKE_PICTURE) {
			try {
				file = new File(filepath, filename);
				FileInputStream inputStream = null;
				inputStream = new FileInputStream(file);
				bmp = BitmapFactory.decodeStream(inputStream);//得到的bitmap对象
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
						Intent i = new Intent(CameraActivity.this,
					XXXXActivity.class);
			startActivity(i);
			this.finish();
		}
	}

}

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3