您的位置:首页 > 其它

手机内部文件存储——assets目录

2016-05-27 23:26 239 查看
一.创建

1./src/main/assets

2.切换到Project视图模式,在main下新建文件夹assets

二.特点

1.和res同等级别

2.主要是存放项目中的大文件

3.文件不受R类的管理

三.API

1.AssetManager 资产管理器

1-getAssets() 得到资产管理器

2-open(文件名) 返回文件的InputStream

2.ImageView:setImageBitmap(Bitmap 实例) 设置图片视图的位图

3.Bitmap 位图:BitmapFactory.decodeFile(图片文件路径) 使用工厂方法得到图片文件的Bitmap.

图片内部存储代码展示:

package com.hanqi.testapp3;

import android.content.SharedPreferences;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.BidiFormatter;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintStream;

public class MainActivity extends AppCompatActivity {

ImageView iv_1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

iv_1=(ImageView)findViewById(R.id.iv_1);

}

//保存资产文件到内部存储
public  void bt4_OnClick(View v)
{
try {

//操作assets目录文件

//1.得到assetsManager

AssetManager am=getAssets();

//2.操作资产目录,边读边写入
//1)读文件到内存  inputstream
InputStream is=am.open("car.png");

//2)写文件到目录  outputstream
FileOutputStream fos=openFileOutput("test.png",MODE_PRIVATE);

//先读后写
byte [] b=new byte[1024];
int i=0;

while ((i=is.read(b))>0)
{
fos.write(b,0,i);
}

fos.close();
is.close();

Toast.makeText(MainActivity.this, "保存文件成功", Toast.LENGTH_SHORT).show();

}
catch (Exception e)
{
Toast.makeText(MainActivity.this, "保存文件出错", Toast.LENGTH_SHORT).show();
}
}

//设置图片指向内部存储
public void bt5_OnClick(View v)
{

//1.得到文件路径
String path=getFilesDir().getAbsolutePath()+"/test.png";

Toast.makeText(MainActivity.this, "path="+path, Toast.LENGTH_LONG).show();

//2.从内部存储的图片得到  Bitmap,BitmapFactory.decodeFile("文件路径");
Bitmap bm= BitmapFactory.decodeFile(path);

//3.设置图片视图的图片来源
iv_1.setImageBitmap(bm);
}

}


图片手机内部存储.java





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: