android获取assets
Ⅰ android读取assets下的文件需要权限吗
AndroidStudio中放置assets文件夹需要手动创建,我以存放一张图片为例说明。新建一个项目,切换到当前的Mole,在main文件夹下新建一个名为“assets”文件夹如下图:复制资源(这里以图片为例),粘贴到“assets”文件夹下,如下图:在AndroidStudio里以
输入流
的方式读取资源,部分代码如下://从assets中读取图片,其它资源读取方式类似AssetManager
am
=
res.getAssets();try
{
is
=
am.open("pic_assets.png");}
catch
(IOException
e)
{
e.printStackTrace();}Bitmap
bmp
=
BitmapFactory.decodeStream(is);
Ⅱ android 怎么读取assets文件
getResources().getAssets().open(fileName)
上面红色的都是读取的函数
Ⅲ android 怎么读assets取资
可以通过这个方法来找到是否有你要的那个文件: String[] list = null; list = getResources().getAssets().list("abc"); 它返回的是在assets文件夹下abc文件夹中文件的文件名的列表。再去检查list中是否有你需要的文件。 读取abc文件夹中的文件的时候只需: InputStream in = getResources().getAssets().open("abc/yan.txt");//不需要加“assets” ......
Ⅳ Android读取assets目录下的视屏资源
在Android
应用中使用assets目录下存放的
资源文件
,assets目录下存放的资源代表应用无法直接访问的原生资源,应用程序通过AssetManager以二进制流的形式来读取资源。
Ⅳ Android获取资源文件的几种方法
1.打包时,将资源放在asset文件夹内,通过AssetsManager获取指定资源:
目标应用和jar中的assets文件夹会合并,所以可以通过获取该应用的此类文件夹来获取目标资源
2.使用library项目
此类方法不能混淆代码,也就是说发布时需要提供library源项目.在引用此lib的目标项目中会看到一个包含已经编译成class.dex的jar文件,这个文件反编译以后仍然是只有代码部分。
3.使用双重library项目
提供一种双层library项目的方法,可以混淆代码,但是xml与图片资源仍然是暴露的,且发布时需要提供二级引用项目,操作上复杂度较高,不如直接提供jar包和资源
4.直接提供jar包和资源(分开)
依然是反射R文件,资源会被暴露给开发者。
Ⅵ android studio怎么读取assets
android studio读取assets资源,其实适合eclipse一样的,只需要执行以下代码:
private String[] names={"songhuiqiao.jpg","zhangzetian.jpg","songqian.jpg","hangxiaozhu.jpg","jingtian.jpg"
,"liuyifei.jpg","kangyikun.jpg","dengziqi.jpg"};
声明完之后,就可以读取了,是用下面的代码完成的
//获取Assets目录下的文件
is=context.getClass().getClassLoader().getResourceAsStream("assets/"+names[i]);
下面是我的这边的截图:
Ⅶ Android如何获取asset目录下所有文件的路径
package com.hangcheng.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
public class GetfilesFromAssets {
private Activity activity;
private String[] files;
public GetfilesFromAssets(Context context) {
this.activity = (Activity) context;
}
// public void deepFile(Context ctxDealFile, String path) {
// try {
// String str[] = ctxDealFile.getAssets().list(path);
// if (str.length > 0) {// 如果是目录
// File file = new File("/data/" + path);
// file.mkdirs();
// for (String string : str) {
// path = path + "/" + string;
// System.out.println("zhoulc:\t" + path);
// // textView.setText(textView.getText()+"\t"+path+"\t");
// deepFile(ctxDealFile, path);
// path = path.substring(0, path.lastIndexOf('/'));
// }
// } else {// 如果是文件
// InputStream is = ctxDealFile.getAssets().open(path);
// FileOutputStream fos = new FileOutputStream(new File("/data/"
// + path));
// byte[] buffer = new byte[1024];
// int count = 0;
// while (true) {
// count++;
// int len = is.read(buffer);
// if (len == -1) {
// break;
// }
// fos.write(buffer, 0, len);
// }
// is.close();
// fos.close();
// }
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
public String[] getfileFromAssets(String path) {
AssetManager assetManager = activity.getAssets();
// String[] files;
try {
files = assetManager.list(path);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return files;
}
public List listHtmlOfAssets() {
List list = new ArrayList();
files = getfileFromAssets("html");
for (int i = 0; i < files.length; i++) {
HashMap map = new HashMap();
map.put("htmlname", files[i]);
list.add(map);
}
return list;
}
}
Ⅷ android数据存储怎么去读assets
以流的操作读取Assets文件,获取Assets文件夹下的文件内容,teachcourse得到输入流:
InputStream is=getResources().getAssets().open("msgbean.xml")
例如:读取一个msgbean.xml文件,然后解析里面的xml数据
/**
*读取assets指定的xml文件,返回List
*@paramfileName文件名称
*@returnList
*/
publicListgetFromAssetsPath(StringfileName){
InputStreamis=null;
AssetManagermanager=getAssets();
try{
is=manager.open("newsbean.xml");
Listlist=NewsService.getNewsBean(is);
Messagemsg=newMessage();
msg.obj=list;
msg.what=0x110;
handler.sendMessage(msg);
returnlist;
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
if(is!=null)
is.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
returnnull;
}
Ⅸ 如何得到android项目assets目录中的内容
assets文件夹是android程序中存放相关外部文件的一个目录,Android官方提供了相应的方法去访问该文件夹中的内容,故此我们并不需要进行相关的路径判断等代码操作,直接调用相关方法打开文件并得到一个字节输入流(InputStream);
然后通过相应的字符编码方式读取字节解码为字符输入流(InputStreamReader);再通过BufferReader对字符输入流读取文本并将字符存入缓冲区以便能提供字符、数组和线段的高效读取;最后我们就能逐行对文件内容进行读取了;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
InputStream inputStream = getResources().getAssets().open("info.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String info = "";
while ((info = bufferedReader.readLine()) != null) {
Log.i("fff", info);
Toast.makeText(MainActivity.this, info, 1000).show();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}