android开发如何获取res/raw和assets文件夹的路径
android开发如何获取res/raw和assets文件夹的路径,主要分为两种情况:
1.如果你只是拷贝动作,那么你只需要得到res/raw和assets文件输入流就可以,方法如下:
获取res/raw文件输入流: InputStream is=getResources().openRawResource(R.raw.XXX);
获取assets文件输入流: InputStream is=getResources().getAssets().open("文件名");
public static Bitmap getImageFromAssetsFile(String fileName, Context content) { Bitmap image = null; AssetManager am = content.getResources().getAssets(); try { InputStream is = am.open(fileName); image = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return image; }
2.如果你想对res/raw和assets文件写的动作,那就要得到相应uri,方法如下:
获取res/raw的uri:Uri uri=Uri.paese("android:resource://包名/"+R.raw.xxx);
String path = new File( "android.resource://"+getPackageName()+"/"+R.drawable.blue_plate).getAbsolutePath(); path = getFileStreamPath("plate_locate.jpg").getAbsolutePath();
MediaController mediaController=new MediaController(this); String uri="android.resource://"+getPackageName()+"/"+R.raw.test2; videoView.setVideoURI(Uri.parse(uri)); videoView.setMediaController(mediaController); mediaController.setMediaPlayer(videoView);
/** * 从raw包下读取数据, demo: TaskDetail gsonObj = new Gson().fromJson(IoriFileHelper.readFileFromRaw(this,R.raw.json), TaskDetail.class); * @param context * @param rawName R.raw.jx * @return */ public static String readFileFromRaw(Activity context, int rawName) { try { InputStreamReader inputReader = new InputStreamReader(context.getResources().openRawResource(rawName)); BufferedReader bufReader = new BufferedReader(inputReader); String line = ""; String result = ""; while ((line = bufReader.readLine()) != null) result += line; return result; } catch (Exception e) { e.printStackTrace(); } return ""; } /** * @param activity * @param fileName main.json * @return */ private static String getFileStremFromAsserts(Activity activity,String fileName) { try { //从assets获取json文件 InputStreamReader isr = new InputStreamReader(activity.getClass().getClassLoader().getResourceAsStream("assets/" + fileName)); //字节流转字符流 BufferedReader bfr = new BufferedReader(isr); String line; StringBuilder stringBuilder = new StringBuilder(); while ((line = bfr.readLine()) != null) { stringBuilder.append(line); }//将JSON数据转化为字符串 return stringBuilder.toString(); } catch (Exception e) { e.printStackTrace(); } return ""; }