当前位置:  编程技术>移动开发
本页文章导读:
    ▪listView gridView 滚动 异步加载 精华帖 链接征集        listView gridView 滚动 异步加载 精华帖 链接收集 http://www.iteye.com/topic/1118828 listview异步加载图片 http://www.iteye.com/topic/685986 http://mmqzlj.blog.51cto.com/2092359/636881 GridView翻页(精确监听AbsListView滚动至.........
    ▪ 储存文件的ContentProvider        存储文件的ContentProvider        基于SQLite的ContentProvider我们见得多了,但是我们在做Android应用时,有时候程序需要下载网络上的图片,这时候我们希望能够把图片缓存到客户端本地,下次.........
    ▪ 走什么作风       走什么风格     在新公司呆了也有半个月了,第一次从大学出来实习,是搞手机支付的。最近感觉学习起来比较吃力。目前自己总结出了两个学习方案,第一:多交流,不懂就问;第二.........

[1]listView gridView 滚动 异步加载 精华帖 链接征集
    来源: 互联网  发布时间: 2014-02-18
listView gridView 滚动 异步加载 精华帖 链接收集

http://www.iteye.com/topic/1118828 listview异步加载图片

http://www.iteye.com/topic/685986

http://mmqzlj.blog.51cto.com/2092359/636881 GridView翻页(精确监听AbsListView滚动至底部)

http://www.iteye.com/topic/401478 理解 Java 的 GC 与 幽灵引用
http://www.cnblogs.com/noTice520/archive/2012/02/10/2345057.html android UI进阶之实现listview的分页加载 http://blog.csdn.net/qinjuning/article/details/6817329 Android中Gallery和ImageSwitcher同步自动(滚动)播放图片库


    
[2] 储存文件的ContentProvider
    来源: 互联网  发布时间: 2014-02-18
存储文件的ContentProvider
       基于SQLite的ContentProvider我们见得多了,但是我们在做Android应用时,有时候程序需要下载网络上的图片,这时候我们希望能够把图片缓存到客户端本地,下次再要显示该图片时就不用再从网络上下载了,直接从本地缓存读取,这就需要用到存储文件的ContentProvider 。
        这里只关注如何通过ContentProvider缓存图片,对Android本地文件操作不熟悉的同学可以参考Android文件存储,其他内容就不介绍了。
        在Mainfest文件中,我们定义的ContentProvider名称为FileProvider,最后别忘了添加权限android.permission.WRITE_EXTERNAL_STORAGE
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ipjmc.demo.fileprovider"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
        <activity android:label="@string/app_name" android:name=".FileProviderActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <provider android:name=".FileProvider" android:authorities="com.ipjmc.demo.fileprovider" />
    </application>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

        FileContentProvider代码如下,其中openFile是必须实现的方法,已经对关键的代码给出了注释

package com.ipjmc.demo.fileprovider;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.res.AssetManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;

public class FileProvider extends ContentProvider {

    /*
	* 为了简单起见,这里直接将asset/pic.png拷贝到了程序的ExternalFilesDir,实际中应该是从网络上下载图片到ExternalFilesDir。
	*/
	@Override
	public boolean onCreate() {
		File file = new File(getContext().getExternalFilesDir(null), "pic.png");
		if (!file.exists()) {
			AssetManager assetManager = getContext().getAssets();

			try {
				InputStream is = assetManager.open("pic.png");
				OutputStream os = new BufferedOutputStream(new FileOutputStream(file));
				byte [] buf = new byte[1024];
				int len = 0;
				while ((len = is.read(buf)) > 0) {
					os.write(buf, 0, len);
				}
				is.close();
				os.close();
			} catch (IOException e) {
				e.printStackTrace();
				return false;
			}
		}
		return true;
	}

	@Override
	public Cursor query(Uri uri, String[] projection, String selection,
			String[] selectionArgs, String sortOrder) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getType(Uri uri) {
		if (uri.toString().endsWith(".png")) {
			return "image/png";
		}
		return null;
	}

	/*
	* 就是做一次映射,返回uri指定的文件的文件描述符
	*/
	@Override
	public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
		if ("image/png".equals(getType(uri))) {
			File file = new File(getContext().getExternalFilesDir(null), uri.getPath());
			if (file.exists()) {
				return ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
			}
		}
		throw new FileNotFoundException(uri.getPath());
	}
	
	@Override
	public Uri insert(Uri uri, ContentValues values) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public int delete(Uri uri, String selection, String[] selectionArgs) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int update(Uri uri, ContentValues values, String selection,
			String[] selectionArgs) {
		// TODO Auto-generated method stub
		return 0;
	}
}

        下面是如何在Activity中该ContentProvider,其中Activity的布局文件我就不贴了,就一个ImageView
package com.ipjmc.demo.fileprovider;

import java.io.FileNotFoundException;
import java.io.InputStream;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.widget.ImageView;

public class FileProviderActivity extends Activity {
	
	public static final Uri URI = Uri.parse("content://com.ipjmc.demo.fileprovider/pic.png");
	
	ImageView mImageView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mImageView = (ImageView) findViewById(R.id.image);

		try {
		    //通过ContentResolver获取图片的输入流,再转化为Bitmap
			InputStream is = getContentResolver().openInputStream(URI);
			Bitmap bitmap = BitmapFactory.decodeStream(is);
			mImageView.setImageBitmap(bitmap);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        
    }
}
		

    
[3] 走什么作风
    来源: 互联网  发布时间: 2014-02-18
走什么风格
    在新公司呆了也有半个月了,第一次从大学出来实习,是搞手机支付的。最近感觉学习起来比较吃力。目前自己总结出了两个学习方案,第一:多交流,不懂就问;第二:多钻研、多思考,不懂自己去探索。但是面对现在的情况,不知道如何抉择才会相对来说比较好。请有经验的大虾们指点。

    
最新技术文章:
▪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