zoukankan      html  css  js  c++  java
  • 手机内部文件存储——assets目录

    一.创建 

       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.

    图片内部存储代码展示:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:paddingBottom="@dimen/activity_vertical_margin"
     7     android:paddingLeft="@dimen/activity_horizontal_margin"
     8     android:paddingRight="@dimen/activity_horizontal_margin"
     9     android:paddingTop="@dimen/activity_vertical_margin"
    10     tools:context="com.hanqi.testapp3.MainActivity"
    11     android:orientation="vertical">
    12 
    13 
    14 
    15     <Button
    16         android:layout_width="match_parent"
    17         android:layout_height="wrap_content"
    18         android:text="保存资产文件到内部存储"
    19         android:onClick="bt4_OnClick"/>
    20 
    21     <ImageView
    22         android:layout_width="wrap_content"
    23         android:layout_height="30dp"
    24         android:id="@+id/iv_1"
    25         android:src="@drawable/f9"/>
    26 
    27     <Button
    28         android:layout_width="match_parent"
    29         android:layout_height="wrap_content"
    30         android:text="设置图片指向内部存储"
    31         android:onClick="bt5_OnClick"/>
    32 
    33 
    34 
    35 
    36 
    37 </LinearLayout>
    图片手机内部存储
      1 package com.hanqi.testapp3;
      2 
      3 import android.content.SharedPreferences;
      4 import android.content.res.AssetManager;
      5 import android.graphics.Bitmap;
      6 import android.graphics.BitmapFactory;
      7 import android.os.Environment;
      8 import android.support.v7.app.AppCompatActivity;
      9 import android.os.Bundle;
     10 import android.text.BidiFormatter;
     11 import android.view.View;
     12 import android.widget.EditText;
     13 import android.widget.ImageView;
     14 import android.widget.TextView;
     15 import android.widget.Toast;
     16 
     17 import java.io.File;
     18 import java.io.FileInputStream;
     19 import java.io.FileOutputStream;
     20 import java.io.InputStream;
     21 import java.io.PrintStream;
     22 
     23 
     24 public class MainActivity extends AppCompatActivity {
     25 
     26   
     27     ImageView iv_1;
     28 
     29     @Override
     30     protected void onCreate(Bundle savedInstanceState) {
     31         super.onCreate(savedInstanceState);
     32         setContentView(R.layout.activity_main);
     33 
     34 
     35         iv_1=(ImageView)findViewById(R.id.iv_1);
     36 
     37     }
     38 
     39 
     40 
     41     //保存资产文件到内部存储
     42     public  void bt4_OnClick(View v)
     43     {
     44         try {
     45 
     46             //操作assets目录文件
     47 
     48             //1.得到assetsManager
     49 
     50             AssetManager am=getAssets();
     51 
     52             //2.操作资产目录,边读边写入
     53             //1)读文件到内存  inputstream
     54             InputStream is=am.open("car.png");
     55 
     56 
     57             //2)写文件到目录  outputstream
     58             FileOutputStream fos=openFileOutput("test.png",MODE_PRIVATE);
     59 
     60             //先读后写
     61             byte [] b=new byte[1024];
     62             int i=0;
     63 
     64             while ((i=is.read(b))>0)
     65             {
     66                 fos.write(b,0,i);
     67             }
     68 
     69             fos.close();
     70             is.close();
     71 
     72             Toast.makeText(MainActivity.this, "保存文件成功", Toast.LENGTH_SHORT).show();
     73 
     74 
     75 
     76         }
     77         catch (Exception e)
     78         {
     79             Toast.makeText(MainActivity.this, "保存文件出错", Toast.LENGTH_SHORT).show();
     80         }
     81     }
     82 
     83     //设置图片指向内部存储
     84     public void bt5_OnClick(View v)
     85     {
     86 
     87         //1.得到文件路径
     88         String path=getFilesDir().getAbsolutePath()+"/test.png";
     89 
     90         Toast.makeText(MainActivity.this, "path="+path, Toast.LENGTH_LONG).show();
     91 
     92         //2.从内部存储的图片得到  Bitmap,BitmapFactory.decodeFile("文件路径");
     93         Bitmap bm= BitmapFactory.decodeFile(path);
     94 
     95         //3.设置图片视图的图片来源
     96         iv_1.setImageBitmap(bm);
     97     }
     98 
     99   
    100 }
    图片手机内部存储.java

  • 相关阅读:
    可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)
    区间合并
    二分查找算法模板
    神经网络详解(RNN/LSTM)
    反向传播算法推导过程(非常详细)
    机器学习-回归问题(Regression)
    从RNN到LSTM
    神经网络浅讲:从神经元到深度学习
    部署高并发python后端(Systemd+Nginx+Gunicorn+Gevent+Supervisor+Flask )
    产品笔记 | 软件版本号—规范与命名规则
  • 原文地址:https://www.cnblogs.com/arxk/p/5535237.html
Copyright © 2011-2022 走看看