Drawable类型表达了各种各样的图形,包括图片、色块、画板、背景等。

包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。

各视图的background属性、ImageView和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件。

Shape图形又称形状图形,它用来描述常见的几何形状,包括矩形、圆角矩形、圆形、椭圆等等。

形状图形的定义文件是以shape标签为根节点的XML描述文件,它支持四种类型的形状:

(1)rectangle:矩形。默认值

(2)oval:椭圆。此时corners节点会失效

(3)line:直线。此时必须设置stroke节点,不然会报错

(4)ring:圆环

<shape xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 指定了形状内部的填充颜色 --><solid android:color="#ffdd66" /><!-- 指定了形状轮廓的粗细与颜色 --><strokeandroid:width="1dp"android:color="#aaaaaa" /><!-- 指定了形状四个圆角的半径 --><corners android:radius="10dp" />
</shape>

首页布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/btn_next"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="5dp"android:text="点击跳转下一个activity页面"android:textColor="@color/black"android:textSize="17sp" /></LinearLayout>

首页代码:

package com.example.myapplication;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity implements View.OnClickListener
{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);findViewById(R.id.btn_next).setOnClickListener(this);}@Overridepublic void onClick(View v){if (v.getId() == R.id.btn_next){startActivity(new Intent(this, DrawableShapeActivity.class));  //创建一个目标确定的意图}}
}

第二个布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Viewandroid:id="@+id/v_content"android:layout_width="match_parent"android:layout_height="200dp"android:background="@color/teal_200"android:layout_margin="10dp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_rect"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="圆角矩形背景"android:textColor="@color/black"android:textSize="17sp" /><Buttonandroid:id="@+id/btn_oval"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:text="椭圆背景"android:textColor="@color/black"android:textSize="17sp" /></LinearLayout></LinearLayout>

第二个代码:

package com.example.myapplication;import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;public class DrawableShapeActivity extends AppCompatActivity implements View.OnClickListener
{private View v_content; // 声明一个视图对象@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_drawable_shape);// 从布局文件中获取名叫v_content的视图v_content = findViewById(R.id.v_content);// v_content的背景设置为圆角矩形
//        v_content.setBackgroundResource(R.drawable.shape_rect_gold);// 给btn_rect设置点击监听器findViewById(R.id.btn_rect).setOnClickListener(this);// 给btn_oval设置点击监听器findViewById(R.id.btn_oval).setOnClickListener(this);}@Overridepublic void onClick(View v){if (v.getId() == R.id.btn_rect)    // 点击了“圆角矩形背景”按钮{v_content.setBackgroundResource(R.drawable.shape_rect_gold);   // v_content的背景设置为圆角矩形}else if (v.getId() == R.id.btn_oval)          // 点击了“椭圆背景”按钮{v_content.setBackgroundResource(R.drawable.shape_oval_rose);         // v_content的背景设置为椭圆形状}}}

shape_oval_rose.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval" ><!-- 指定了形状内部的填充颜色 --><solid android:color="#F3F2EC" /><!-- 指定了形状轮廓的粗细与颜色 --><strokeandroid:width="1dp"android:color="#F10606" /></shape>

shape_rect_gold.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" ><!-- 指定了形状内部的填充颜色 --><solid android:color="#ffdd66" /><!-- 指定了形状轮廓的粗细与颜色 --><strokeandroid:width="1dp"android:color="#E61111" /><!-- 指定了形状四个圆角的半径 --><corners android:radius="10dp" /></shape>

=================================================================================================================

点九图片的扩展名是png,文件名后面常带有“.9”字样。因为该图片划分了3×3的九宫格区域,所以得名点九图片,也叫九宫格图片。

在拉伸点九图片时,只拉伸内部区域,不拉伸边缘线条。

在Android Studio中右击某张图片,并在右键菜单中选择“Create 9-Patch files”,接着单击OK按钮即可自动生成点九图片。

123

基础复习——图形定制——图形Drawable——形状图形——九宫格图片——状态列表图形...相关推荐

  1. 【Android】-- 图形(形状图形、状态列表图形、九宫格图片)

    一.图形Drawable Drawable类型表达了各种各样的图形,包括图片.色块.画板.背景等. 包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描 ...

  2. Android 高级Drawable资源---复合Drawable----状态列表Drawable

    状态列表Drawable是一种复合资源,允许根据View的状态指定一个Drawable. 大多数Android原生View都使用状态列表Drawable ,如Button上使用的图像以及标准ListV ...

  3. Android Studio 学习记录-图形定制

    目录 图形Drawable 形状图形 1.shape(形状) 2.size(尺寸) 3.stroke(描边) 4.corners(圆角) 5.solid(填充) 6.padding(间隔) 7.gra ...

  4. C++ 基础复习系列2(打印图形类(循环)经典问题类)

    C++ 基础复习系列--孙不坚1208 C++ 基础复习系列1(输入输出类.调用数学函数类) C++ 基础复习系列2(打印图形类(循环).经典问题类) C++ 基础复习系列3(递归算法){Fibona ...

  5. Adobe illustrator CS6配置参数文件所在位置-如何添加自定义图形图案-填充现有形状-脚本开发

    文章目录 1.CS6配置参数文件所在位置 2.如何添加自定义图形图案 3.作者答疑 1.CS6配置参数文件所在位置 有时需要查看AI软件配置参数所在位置,笔者找了下,在windows系统下,在如下位置 ...

  6. android绘制图形:android.graphics.drawable.Drawable

    android.graphics.drawable 类 Drawable java.lang.Object android.graphics.drawable.Drawable 直接已知子类: Bit ...

  7. 中国图形图象学报和计算机科学,中国图象图形学报是正刊吗?_中国图象图形学报是核心期刊吗?_中国图象图形学报杂志简介-阿狸期刊网...

    中国图象图形学报期刊封面 中国图象图形学报期刊基本信息 主管单位:中国科学院 主办单位:中国科学院遥感应用研究所;中国图象图形学会;北京应用物理与计算数学研究所 期刊级别:CSCD核心期刊,北大核心期 ...

  8. ppt如何旋转流程图_PPT中smartart图形怎么旋转?PPT中整体旋转或翻转smartart图形的方法介绍...

    powerpoint中smartart图形怎么做整体旋转?SmartArt图形在PPT中用途很大,并且也有很大的作用,但如果使用的比较频繁,就会发现一个问题,如果要进行整体旋转或者是翻转,那这样要怎么 ...

  9. centos7打开图形界面命令_centos7标准版(DVD)命令界面和图形界面相互切换

    1.root登陆终端 2.输入命令 vi /etc/inittab ,查看两种界面的启动模式: vi /etc/inittab 3.退出vi模式,,输入命令systemctl get-default ...

最新文章

  1. DNS解析污染原理——要么修改包,要么直接丢弃你的网络包
  2. The 2018 ACM-ICPC Asia Qingdao Regional Contest
  3. 【免费下载】“后红海”时代,独家揭秘当下大数据体系
  4. 博弈论 斯坦福game theory stanford week 3.2_
  5. 由降低系统之间的接口维护和升级的成本想到的。。。
  6. eclipse中设置java注释模板
  7. JAVA发送HttpClient请求及接收请求结果过程
  8. 合并k个有序链表 python_leecode刷题(27)-- 合并k个排序链表
  9. 打单软件显示服务器错误是怎么回事,网络版仓库进销存,出入库存管理软件,送货单打印等连接不上解决【新版】...
  10. 【项目管理/PMP/第六版/新考纲】纯干货!项目发展史/项目定义/项目集/项目组合/十五至尊图
  11. iOS16 系统更新教程,测试版描述文件下载
  12. 微信图片怎么添加竖排文字_微信字体竖排怎么设置 微信怎样编辑竖排文字
  13. nebula模拟器_nebula模拟器
  14. phx.gen.html 生成器
  15. java 常用框架MP
  16. 辉芒微IO单片机FT60F024-RB
  17. python爬取豆瓣书籍_Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
  18. linux怎么撤销关机命令,Linux的shutdown命令
  19. Auto.js实例找色
  20. 【Java编程指南】语法基础

热门文章

  1. 地理信息系统基础知识
  2. 甘肃非煤矿山电子封条 智慧矿山 opencv
  3. jxls操作excel
  4. 自然常数e与重要极限
  5. 运营商三要素验证原理,这篇文章就够了!
  6. 博弈论——巴什博弈(C++)
  7. java查询所有数据_elasticsearch查询所有数据restful api以及java代码实现
  8. 并发编程之深入理解synchronized
  9. 华为诺亚实验室:端侧AI模型的技术进展与未来|量子位·吃瓜社
  10. 米家扫地机器人充满电需要多长时间_米家扫地机器人长期在充电状态对电池有影响吗...