zoukankan      html  css  js  c++  java
  • Android getResources的作用和须要注意点

           今天做一个Android的文件管理器,里面用到非常多的地方用到了getResources。

    Drawable currentIcon = null;
    
    currentIcon = getResources().getDrawable(R.drawable.folder);
    
    currentIcon = getResources().getDrawable(R.drawable.image);

           一開始不是非常理解为什么用 getResources()这种方法就能够获取存在系统的资源。于是看了一下文档和翻阅了一下资料:

          比如:把资源文件放到应用程序的/raw/raw下,那么就能够在应用中使用getResources获取资源后,以openRawResource方法(不带后缀的资源文件名称)打开这个文件。比如:

    Resources myResources = getResources();
    InputStream myFile = myResources.openRawResource(R.raw.myfilename);

    和传统的java文件操作一样,在android Api中提供了openFileInput和openFileOutput方法来读取设备上的文件。

    简写

    InputStream fs =this.getResources().openRawResource(R.raw.kb); (资源文件名称为kb.html, 不须要带后缀.html)
    InputStreamReader read = new InputStreamReader (fs,”gb2312″);
    BufferedReader in = new BufferedReader(read);

    读取res/drawable文件夹下的png或者bmg

    //得到Resources对象
    Resources r = this.getContext().getResources();
    //以数据流的方式读取资源
    Inputstream is = r.openRawResource(R.drawable.my_background_image);
    BitmapDrawable bmpDraw = new BitmapDrawable(is);
    Bitmap bmp = bmpDraw.getBitmap();

    或者

    InputStream is = getResources().openRawResource(R.drawable.icon);
    Bitmap mBitmap = BitmapFactory.decodeStream(is);
    Paint mPaint = new Paint();
    canvas.drawBitmap(mBitmap, 40, 40, mPaint);

    数据包package:android.content.res
    主要类:Resources

    InputStream openRawResource(int id) 获取资源的数据流,读取资源数据

    把一个图片资源,加入你的文件到你project中res/drawable/文件夹中去,从这里,你就能够引用它到你的代码或你的XML布局中,也就是说,引用它也能够用资源编号,比方你选择一个文件仅仅要去掉后缀就能够了(比如:my_image.png 引用它是就是my_image)。

    当须要使用的xml资源的时候,就能够使用context.getResources().getDrawable(R....资源的地址如:R.String.ok);

    当你方法里面没有Context參数,能够 this.getContext().getResources();这样就能够了。


          注意,使用getResource()的时候注意

    1、必须要有Context呀

    2、能够用作成员变量,构造传入或方法參数传入。就能够了。


  • 相关阅读:
    centos7.6 使用yum安装mysql5.7
    解决hadoop本地库问题
    docker-compose 启动警告
    docker 安装zabbix5.0 界面乱码问题解决
    docker 部署zabbix问题
    zookeeper 超时问题
    hbase regionserver异常宕机
    (转载)hadoop 滚动升级
    hadoop Requested data length 86483783 is longer than maximum configured RPC length
    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4041616.html
Copyright © 2011-2022 走看看