在Android手机图库中预先内置图片

  • 在目录packages/apps/Galllery2/res/raw添加图片资源
  • 在目录packages/apps/Gallery2/src/com/android/gallery3d/app/AlbumSetPage.java中添加文件复制方法,用于将raw文件下的图片资源复制到内存SD卡中
    private boolean copyFile(InputStream fis,String des){
    	boolean result=true;
    	FileOutputStream fos=null;
    	
    	try{
    		File fout=new File(des);
    		if(!fout.exists()){
    			fos=new FileOutputStream(fout);
    			byte[] b=new byte[1024];//一张图片的大小不超过1K大小
    			int len;
    			while((len=fis.read(b))!=-1){
    				fos.write(b, 0, len);
    			}
    		}
    	}catch(IOException e){
    		e.printStackTrace();
    		result=false;
    	}finally{
    		if(fos!=null){
    			try{
    				fos.close();
    			}catch(IOException e){
    				e.printStackTrace();
    				result=false;
    			}
    		}
    		if(fis!=null){
    			try{
    				fis.close();
    			}catch(IOException e){
    				e.printStackTrace();
    				result=false;
    			}
    		}
    	}
    	return result;
    }

  • 在目录packages/apps/Gallery2/src/com/android/gallery3d/app/AlbumSetPage.java中添加文件扫描方法,用于将复制到SD卡中的图片显示到图库中
    public static final void scanFile(final Context context,final String path){
    	Intent scanIntent=new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    	scanIntent.setData(android.net.Uri.formFile(new File(path)));
    	context.sendBroadcast(scanIntent);
    }

  • 在目录packages/apps/Gallery2/sre/com/android/gallery3d/app/AlbumSetPage.java中的onCreate方法中调用以上方法对资源进行加载
    InputStream p1=mActivity.getResources().openRawResource(R.raw.p1);
    copyFile(p1,"/sdcard/Pictures/p1.jpg");
    scanFile(context,"/sdcard/Pictures/p1.jpg");


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值