第六节视频的内容,真正做起来才发现自己一点都不了解这个点9图。

概述

官网截的:

A NinePatchDrawable

graphic is a stretchable bitmap image, which Android will automatically resize to accommodate the contents of the View in which you have placed it as the background. An example use of a NinePatch is the backgrounds used by standard Android buttons — buttons must stretch to accommodate strings of various lengths. A NinePatch drawable is a standard PNG image that includes an extra 1-pixel-wide border. It must be saved with the extension .9.png

, and saved into the res/drawable/

directory of your project.

点9图示一种可伸缩的位图,如果你某个View用了点9图做background,

Android会根据点9图的设置来自动为你调整、适应内容。

点9图是标准的PNG格式图像,被一圈1像素宽的边缘包围,

并且保存的时候扩展名一定要是“.9.png”,还要保存在“res/drawable/”目录。

其它要注意的地方

1.四边那几条黑线代表什么

2.最外围的一圈像素必须要么是纯黑色,要么是透明,一点点的半透明的像素都不可以有,比如说99%的黑色或者是1%的投影都不可以有

3.文件的后缀名必须是.9.png,不能是.png或者是.9.png.png,这样的命名都会导致编译失败。

关于操作

真正操作起来,才发现自己真的很不熟练。

看视频的时候,说“Create 9-Patch file”,

然后我连Create 9-Patch file在哪里点击都没找到……

之前是用那种画点9图的工具,现在AndroidStudio直接就有提供了。

把png格式(一定要是png,jpg之类的都不行),复制到“res/drawable/”目录,

点击右键,就会在菜单看到Create 9-Patch file了。

留意下面还有 □Show content 和 □Show patches 两个选项。

画的时候,就是在那1像素的包围圈“拖动”划线和“按住Shift键”删除。

我的上机试验

我做了一个EditText和Button,

那个Button的background就是下面这幅图,

把它像上面那样做成点9图。

当在EditText输入字符串,然后点击Button,

Button就会显示输入的内容,然后我就输入很多字符。

分别设置点9图上下左右的黑线,看Button会被撑开成什么样子。

代码如下:

public class AnotherActivity extends ActionBarActivity {

private Button btn_testNinePatch;

private EditText et_testNinePatch;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_another);

btn_testNinePatch = (Button) findViewById(R.id.btn_testNinePatch);

et_testNinePatch = (EditText) findViewById(R.id.et_testNinePatch);

btn_testNinePatch.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

btn_testNinePatch.setText(et_testNinePatch.getText().toString());

}

});

}

}

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical">

android:id="@+id/et_testNinePatch"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

android:id="@+id/btn_testNinePatch"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/button1"

android:text="sdfdsfdsfdsfdsfdsfdsfdsfsdf" />

记住那些要注意的地方,自己上机试一下,大概也就懂了。

参考资料

java编译点九图_【Android】点9图,点九图相关推荐

  1. java编译使用androidsdk,详解Android源码的编译

    本文将为大家介绍的是如何设置Android源码的编译环境,包括Linux下的配置.主要基于Android 1.0环境,希望对大家了解Android开发有所帮助. 本次编译过程主要参考官方文档(http ...

  2. c++思维导图_必看|用好思维导图,别神话思维导图

    不知不觉,时间已经划至5月中旬,20级的萌新们也从当初的"小白"不断进阶,化身老司机指日可待~ 相信从备考到现在,各位一定对"思维导图"这四个大字都听倦了!不管 ...

  3. html 甘特图_工具项目管理工具详解——甘特图

    作为项目的负责人,"时间管理"也是极为重要的一环.甘特图作为常用的项目管理工具之一,有助于把一个大型项目划分为几个小部分,并有条理地展示. 甘特图(Gantt chart)又称为横 ...

  4. 介绍一个产品的思维导图_产品运营怎么使用思维导图?四个方面阐释思维导图的运用...

    思维导图,作为一个工具而言,目前关于它的使用已经深入到各行各业中,就以互联网和软件工程来说,思维导图就常出现在:需求访谈,需求分析,概要和详细设计等环节,作为设计辅助手段使用. 它也经常出现在各类会议 ...

  5. hdc mfc 画扇形图_使用echarts绘制条形图和扇形图

    使用echarts绘制条形图和扇形图 简单举例说明下echarts如何绘制条形图和扇形图 代码示例 echarts绘制条形图和扇形图 var mychart1=echarts.init(documen ...

  6. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

  7. python制作雷达图_如何利用Python matplotlib绘制雷达图

    本篇文章介绍使用matplotlib绘制雷达图. 雷达图也被称为网络图,蜘蛛图,星图,蜘蛛网图,是一个不规则的多边形.雷达图可以形象地展示相同事物的多维指标,雷达图几乎随处可见,应用场景非常多. 一. ...

  8. 关于主机的思维导图_送给孩子最好的思维导图课程

    思维导图寒假班来了 1关于思维导图思维导图是一种简单而有效的图形思维工具,主要元素包含图形.线条.关键字.颜色,配合下图,我们能理解思维导图利用了左脑和右脑的工作机理,能够充分调动大脑的分析推理和想象 ...

  9. 将java编译成so库_利用android studio 生成 JNI需要的动态库so文件

    JNI:  Java Native Interface,  提供了java语言和其他语言(例如c和c++)进行相互调用的方式. 本文是用java调用c生成的so模式.其中,编译so文件过程如下: 1) ...

  10. java安卓app开发教程_[Android教程] Cordova开发App入门(一)创建android项目

    前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...

最新文章

  1. PCL:官方程序 Region growing segmentation
  2. Httpservlet cannot be resolved to a type的原因与解决方法
  3. java 生成二维码 QRCode、zxing 两种方式
  4. linux 终端 含义,ubuntu终端中@前后的字符串含义及修改-布布扣-bubuko.com
  5. [前端漫谈_4] 从 薛定谔的猫 聊到 Event loop
  6. vs2015 hiredis编译使用
  7. Unknown run configuration type AndroidRunConfigurationType的解决办法
  8. dialog的二次封装
  9. SpringBoot项目实现网络测速功能
  10. docker安装zabbix怎样修改图标和登录页文字
  11. OpenHarmony代码操作总结
  12. 华三防火墙Reth链路冗余技术
  13. 数据中台之数据建模三部曲
  14. 今日金融词汇---量化宽松
  15. 一个精壮的代购骗子被我用Python彻底征服了。居然坑到我头上来了。
  16. Virtual Box安装Linux
  17. python定义一个学生类姓名、年龄、性别、成绩、你成绩评价_.定义一个学生类Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。...
  18. idea去除常见黄色部分警告大全
  19. iOS7.1以及iOS9.2与之前的不同
  20. 红星美凯龙CEO车建新的圆融和霸气

热门文章

  1. sklearn的feature_importances_含义是什么?
  2. 演讲与口才培训的重要方法:讲故事训练法
  3. matlab信号自相关函数,正弦波与其他信号自相关函数的matlab实现
  4. iphone 与 ipad 程序图标
  5. 图解未成年人个人信息保护要求(附下载)
  6. 无锁编程与有锁编程的效率总结、无锁队列的实现(c语言)
  7. 完全备份、增量备份和差异备份的区别
  8. 对抗样本生成算法之BIM算法
  9. 完美世界经典版本881外挂
  10. RTL8380M/RTL8382M管理型交换机系统软件操作指南二:转发表