android矢量图 内存大,Android内存控制小技巧-使用矢量图来节省你的内存并简化你的开发。...

先上一个 位图和矢量图的 说明。外链网址已屏蔽

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

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

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

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

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

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

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

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

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

外链网址已屏蔽

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

外链网址已屏蔽

下载完毕以后 是这样的。

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

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

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

类似于这种:

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

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

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

1.把ttf文件放进assets下。

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

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

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

1 packagecom.example.wuyue.iconfonttest;2

3 importandroid.graphics.Typeface;4 importandroid.support.v7.app.ActionBarActivity;5 importandroid.os.Bundle;6 importandroid.util.Log;7 importandroid.view.Menu;8 importandroid.view.MenuItem;9 importandroid.widget.TextView;10

11

12 public class MainActivity extendsActionBarActivity {13

14 privateTextView iconFontTv;15

16 @Override17 protected voidonCreate(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 @Override29 public booleanonCreateOptionsMenu(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 @Override36 public booleanonOptionsItemSelected(MenuItem item) {37 //Handle action bar item clicks here. The action bar will38 //automatically handle clicks on the Home/Up button, so long39 //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

2 xmlns: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

10 android:layout_width="wrap_content"

11 android:layout_height="wrap_content"

12 android:textSize="50sp"

13 android:text=""

14 />

15

16

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

最后看下效果

%E5%A4%96%E9%93%BE%E7%BD%91%E5%9D%80%E5%B7%B2%E5%B1%8F%E8%94%BD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下利用nohup后台运行jar文件包程序

Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar & &am…

idea 快捷键代码行标记并快捷跳到标记行

idea有一个组合快捷键 标记代码行(左边的行数会出现一个1,代表着已经标记了) ctrlshift1 迅速跳到标记行 ctrl1 这边给大家送上显示GIF

android十进制转十六进制算法,十进制转十六进制 代码

5621转换为16进制数的方法是“除16取余”方法,5621/16=商351余5,16进制最后一位为5351/16=商21余15,16进制右边第二位为F21/16=商1余5,16进制右边第三位为51/16=商0余1,1…

鸿蒙之火是什么意思,鸿蒙突然火了!鸿蒙是什么?

原标题:"鸿蒙"突然火了!"鸿蒙"是什么?什么是鸿蒙?鸿蒙是什么?很多人都在发问,仿佛一夜之间就火了的鸿蒙有何独特之处?鸿蒙是真的来了。鸿蒙是文化,鸿蒙也是科技…

String类的indexOf方法的用法和举例

String类的indexof方法的作用和返回值: 今天在这里重点回顾一下,希望对大家能有所帮助: indexOf(int,ch) 先看第一个indexOf它返回值是int,在看它的参数(int,ch&#x…

java中String对象作为参数传递问题

问题 java中将对象作为参数传递究竟是值传递还是引用传递? 1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的。 2、对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参…

html语言怎么办到直接手写,4、手写HTML语言代码之《文字处理》

千里之堤始于足下!!学习网页制作的心得体会4.........手写HTML语言代码之《文字处理》一、和(居中对齐)下面网页我的第一个网页教师自制教学软件的背景随着教育体制的改革和信息时代的到来,可能越来越多的同学己经不再适应看着教师的板书、记着笔记的学习方式&#…

接口interface修饰符相关问题总结

1、抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。 原因如下: 抽象方法没有方法体,是用来被继承的,所以不能用private修饰;static修饰的方法可以通…

html纵向字幕无缝滚动,HTMl中marquee标签实现无缝滚动跑马灯效果示例

本篇文章小编给大家分享一下HTMl中marquee标签实现无缝滚动跑马灯效果示例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。标签,它是成对出现的标签,首标签和尾标签之间的内容就是滚动内容。…

Java字符串池(String Pool)深度解析

在工作中,String类是我们使用频率非常高的一种对象类型。JVM为了提升性能和减少内存开销,避免字符串的重复创建,其维护了一块特殊的内存空间,这就是我们今天要讨论的核心,即字符串池(String Pool&#xff0…

优酷html5视频网站,国内主要视频网站的嵌入方式

来一篇水文,整理一下国内各大视频网站的视频嵌入方式,或许有一点用处。爱奇艺、优酷、搜狐视频、腾讯视频、酷6、土豆、乐视。这些视频站绝大多数都采用 Flash 的方式播放,很多也提供了 iframe 的播放方式。根据最新标准应当使用 &#xff0c…

Java中取余(%)和取模(Math.floorMod)的区别

之前一直都认为取模和取余是一样的,甚至还怀疑设计语言的大神们不是脑子有问题么,为什么要整两个一样的东西,现在想想还是自己太 low了,竟然不能 get 到大神们的良苦用心。今天莫名其妙的用到了Java的取模方法,发现竟然…

用dl元素编辑html个人信息,html dl dt dd标签元素语法结构与使用

dl dt dd认识及dl dt dd使用方法一、dl dt dd认识 - TOPhtml 是一组合标签,使用了dt dd最外层就必须使用dl包裹,此组合标签我们也又叫表格标签,与table表格类似组合标签,故名我们也叫dl表格(扩展阅读:table tr td、…

千牛怎么注销卖家店铺_新店铺怎么拥有亚马逊购物车?亚马逊小卖家如何尽快获得黄金购物车?...

我做跨境电商也有六年的时间了,在电商这个行业也有自己的一些经验。经验也许没有其他大卖家丰富,但会将我知道的都进行分享。如果有不懂得亚马逊问题可以我(V:772024802)。我这里给大家安排一堂直播课,可以系统的帮你解决做亚马逊…

mysql中like是否使用索引

一.测试数据 CREATE TABLE test_orderdetail (id int(11) NOT NULL AUTO_INCREMENT,order_id int(11) DEFAULT NULL,product_name varchar(100) DEFAULT NULL,cnt int(11) DEFAULT NULL,create_date datetime DEFAULT NULL,PRIMARY KEY (id),KEY idx_orderid_productname (pro…

Ppt2010中HTML是什么,2010dw1html简介.ppt

2010dw1html简介课程名称:网页设计时间:周二 晚20:00到21:50地点:西配320教室教材:Dreamweaver网页设计案例教程weilei;第一节 网络及html简介;1.1 www的基本概念 ;1.2 网页访问流程( www的结构);1.3 浏览器;1.4网页设计基本概念 …

如何对一个对象进行深拷贝?

介绍 在Java语言里,当我们需要拷贝一个对象时,有两种类型的拷贝:浅拷贝与深拷贝。浅拷贝只是拷贝了源对象的地址,所以源对象的值发生变化时,拷贝对象的值也会发生变化。而深拷贝则是拷贝了源对象的所有值,…

电子科大16秋计算机应用基础在线作业一,电子科大16秋《计算机应用基础(本科)》在线作业3...

电子科技大学电子科大16秋《计算机应用基础(本科)》在线作业3一、单选题(共35 道试题,共70 分。)1. 在Windows,打开一个菜单后,其中某菜单项会出现下属级联菜单的标识是()。A. 菜单右侧有一组英文提示B. 菜单右侧有一个黑色三角形C. 菜单左侧有一个黑色圆点D. 菜单左…

wince手机投屏代码_除了 iOS,这些手机系统你肯定没用过

今年是2020年,智能手机市场经过大浪淘沙,留存下来的品牌可以说都是精品,国外的像苹果、三星、索尼、LG,国内有华为、小米、OV、魅族....都是有特色有竞争力的。华为在海外的巨幅广告牌但是大家有没有发现,如此多的手机…

SpringBoot读取Resource下文件的几种方式

最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传;这里待下载模板位置为resource/excleTemplate/test.xlsx,尝试了四种读取方式,并且测试了四种读取方式分别的windows开发…