先上一个 位图和矢量图的 说明。http://zhidao.baidu.com/link?url=xwvs5CBzWeh15O3Ee4bICwCqg4PCQWwg5oZ0a6CVydbVZzufqrINa_TyxmVjWAKhNYi9N7vArEo2a6N-r0OJlK

维基百科里面有更详细的说明 我就不贴地址了。简单来说就是位图 比 矢量图要大。但是位图可以适用于各种场景。

但是矢量图就只能显示一些有规律的图形。复杂的做不了或者是很难做。

对于android来说,我们一般app里面 会有各种icon 的图片。以前我们都是喜欢用imageview来表示。然后让美工去切图,

通常还会切好几套,因为我们的app要适配各种不一样dpi的设备。这么做的结果就是我们的drawable下面 图片太多,

apk包打出来很大,而且imageview其实占的内存也不小。最重要的是开发麻烦,我们复制图片,美工切图都是很累的。

但是使用矢量图的话,上述问题就都解决了。开发方便,占用内存小。(你简直找不到一个更好的方案来做android的icon了)

首先 网上有2个资源库 可以供我们使用

第一个是github上的开源项目,大家可以自己去里面找,但是这个里面貌似没有给你表明矢量图的key,你需要另外下载软件来获取

对应图标的key 不然无法在代码中使用。

https://github.com/FortAwesome/Font-Awesome

第二个就是阿里巴巴的图库,选取你喜欢的图标放进购物车,然后下载就可以了。

http://www.iconfont.cn/

下载完毕以后 是这样的。

那个ttf 文件就是我们要存放在android assets目录下的文件。

而那个html文件里面 则有图标和对应的key的值。

类似于这种:

注意key的值里面 分号不能少了。

最后看下代码 实际上非常简单 就是三步:

1.把ttf文件放进assets下。

2.在代码里 让textview set typeface(这个typeface会引用你的assets下的ttf文件)

3.在xml里写入图标对应的key值 即可。

4.要注意的就是icon的大小就是由textview的sp来控制的。这一点可能和imageview 我们使用的wrapcontent有所不同。

 1 package com.example.wuyue.iconfonttest;
 2
 3 import android.graphics.Typeface;
 4 import android.support.v7.app.ActionBarActivity;
 5 import android.os.Bundle;
 6 import android.util.Log;
 7 import android.view.Menu;
 8 import android.view.MenuItem;
 9 import android.widget.TextView;
10
11
12 public class MainActivity extends ActionBarActivity {
13
14     private TextView iconFontTv;
15
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         //设置tpyeface的代码不要漏掉
21         Typeface typeface = Typeface.createFromAsset(getAssets(), "iconfont.ttf");
22         iconFontTv = (TextView) this.findViewById(R.id.tv);
23         iconFontTv.setTypeface(typeface);
24
25
26     }
27
28     @Override
29     public boolean onCreateOptionsMenu(Menu menu) {
30         // Inflate the menu; this adds items to the action bar if it is present.
31         getMenuInflater().inflate(R.menu.menu_main, menu);
32         return true;
33     }
34
35     @Override
36     public boolean onOptionsItemSelected(MenuItem item) {
37         // Handle action bar item clicks here. The action bar will
38         // automatically handle clicks on the Home/Up button, so long
39         // as you specify a parent activity in AndroidManifest.xml.
40         int id = item.getItemId();
41
42         //noinspection SimplifiableIfStatement
43         if (id == R.id.action_settings) {
44             return true;
45         }
46
47         return super.onOptionsItemSelected(item);
48     }
49 }

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
 3     android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
 4     android:paddingRight="@dimen/activity_horizontal_margin"
 5     android:paddingTop="@dimen/activity_vertical_margin"
 6     android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 7
 8    <TextView
 9        android:id="@+id/tv"
10        android:layout_width="wrap_content"
11        android:layout_height="wrap_content"
12        android:textSize="50sp"
13        android:text=""
14        />
15
16 </RelativeLayout>

text里 填入图标对应的key 即可,注意不要漏掉分号。

最后看下效果

转载于:https://www.cnblogs.com/punkisnotdead/p/4658809.html

Android内存控制小技巧-使用矢量图来节省你的内存并简化你的开发。相关推荐

  1. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  2. Android课程---Android Studio使用小技巧:提取方法代码片段

    这篇文章主要介绍了Android Studio使用小技巧:提取方法代码片段,本文分享了一个快速复制粘贴方法代码片段的小技巧,并用GIF图演示,需要的朋友可以参考下 今天来给大家介绍一个非常有用的Stu ...

  3. Android studio 试用小技巧

    本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本文将这62 ...

  4. iOS小技巧12-苹果地图和高德地图的关系

    iOS小技巧12-苹果地图和高德地图的关系 苹果地图是美国苹果公司(Apple Inc.)研发的地图产品,运行于iOS系统. 高德地图是中国高德(AutoNavi)研发的地图产品,有iOS.Andro ...

  5. Android Studio使用小技巧:提取方法代码片段

    今天,讲讲android studio使用的小技巧.把代码直接提取一个函数. 有些时候我们在一个方法内部写了过多的代码,然后想要把一些代码提取出来再放在一个单独的方法里,通常我们的做法是复制粘贴,现在 ...

  6. 【Android 安装包优化】Android 中使用 SVG 图片 ( SVG 矢量图简介 | Android 中生成 Vector 矢量图资源 )

    文章目录 一.SVG 矢量图简介 二.Android 中生成 Vector 矢量图资源 三.参考资料 一.SVG 矢量图简介 Android SVG 参考文档 : https://developer. ...

  7. android+复杂绘图工具,Inker - 专业级矢量图绘画工具,功能不输桌面应用 - Android 应用 - 【最美应用】...

    Inker 就是一款专业级的矢量图绘画工具,界面功能完全不输专业软件.打开应用后,就会看到新建页面的提示,设置好参数后,即可进入主页面. 应用界面与 Adobe 系列的工具相似,看起来很专业.不过在使 ...

  8. ANSYS 经典界面绘图控制小技巧

    回到我们自身,作为一名 ANSYS 使用者,工作报告中通常会插入大量分析结果图,如变形云图.应力云图以及模态振形等,漂亮好看的展示图片更容易获得认可和加分. 接下来将简单介绍 ANSYS 经典绘图控制 ...

  9. ArcGIS制图及出图小技巧——以土地利用图为例

    欢迎大家关注我的公众号,最新内容先在公众号发布.点击这里查看近期文章合集. 文章目录 一.关于地图配色 1.使用取色器 2.批量修改符号 二.关于出图 1.快速调整数据框以适应纸张大小 2.使用导入符 ...

最新文章

  1. Android发布项目到外部仓库
  2. 04 - Object-C协议与代理设计
  3. 《当程序员的那些狗日日子》(五)工作中,工作外
  4. POJ3614奶牛晒阳光DINIC或者贪心
  5. 为节约而生:从标准Attention到稀疏Attention
  6. 推荐5个免费项目管理工具
  7. SpringCloud 从菜鸟到大牛之五 统一配置中心 Spring Cloud Config
  8. python函数执行顺序_python下for循环接if判断的函数执行顺序
  9. 腾讯广告算法大赛高分秘籍来袭!大咖直播详解TI-ONE与Angel框架
  10. Leetcode 142. Linked List Cycle II
  11. 论文笔记:You Only Look Once: Unified, Real-Time Object Detection(yolo v1)
  12. mojave 未能与恢复服务器,Clover引导安装黑苹果卡各种问题的解决方法(内容较多)...
  13. No valid crumb was included in the request
  14. windows电脑桌面不见了
  15. 工程数学 | 两种中值定理傻傻分不清
  16. 学Python好找工作吗?需要满足Python岗位哪些要求?
  17. 网络渗透——CTF实践
  18. 教你用认知和人性来做最棒的程序员
  19. 火山引擎云原生大数据在金融行业的实践
  20. ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of typ

热门文章

  1. 程序员必看 c++笔试题汇总
  2. ES6中的class是如何实现的?(附Babel编译的ES5代码详解)
  3. OSChina 周六乱弹 —— 去做点疯狂的事情
  4. Plugin with id 'com.novoda.bintray-release' not found.的解决方案
  5. 原型模式Prototype,constructor,__proto__详解
  6. 用RSA实现Web单点登录密码的加密传输
  7. CSS+DIV-制作实用菜单
  8. [SpringBoot]全局异常处理
  9. DPM2007轻松恢复Exchange邮件,DPM2007系列之三
  10. CrackMe-CrackHead