组合控件 圆环 ring
使用
可以设置内部填充样式及大小可以设置边框颜色及宽度这里只是介绍了其中一种实现方式,其实这种类型的东西完全可以用自定义View去实现,他就是一个空中的大圆+一个空中或实心的小圆,实现起来也是非常容易的。public class MainActivity extends Activity {private MyRingView[] views = new MyRingView[4];@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);views[0] = (MyRingView) findViewById(R.id.item1);views[1] = (MyRingView) findViewById(R.id.item2);views[2] = (MyRingView) findViewById(R.id.item3);views[3] = (MyRingView) findViewById(R.id.item4);views[0].setStyle(0xff666666, false);views[1].setStyle(0xff00b0ff, true);views[2].setStyle(0xffffa726, false);views[3].setStyle(0xffff1744, true);}}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#fff"android:orientation="horizontal"android:padding="5dp" ><com.bqt.shape53.MyRingViewandroid:id="@+id/item1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="40dp" /><com.bqt.shape53.MyRingViewandroid:id="@+id/item2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="40dp" /><com.bqt.shape53.MyRingViewandroid:id="@+id/item3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="40dp" /><com.bqt.shape53.MyRingViewandroid:id="@+id/item4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="40dp" /></LinearLayout>
View
public class MyRingView extends RelativeLayout {private Context mContext;private ImageView iv_circle;private ImageView iv_solid;public MyRingView(Context context) {super(context);initView(context);}public MyRingView(Context context, AttributeSet attrs) {super(context, attrs);initView(context);}public MyRingView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);initView(context);}private void initView(Context context) {mContext = context;inflate(mContext, R.layout.view, this);iv_circle = (ImageView) findViewById(R.id.iv_circle);iv_solid = (ImageView) findViewById(R.id.iv_solid);}/*** @param color 颜色* @param isSolid 内部是否填充*/public void setStyle(int color, boolean isSolid) {((GradientDrawable) iv_circle.getBackground()).setStroke(2, color);//圆环的颜色if (isSolid) {((GradientDrawable) iv_solid.getBackground()).setColor(color);//指定内部圆的背景色((GradientDrawable) iv_solid.getBackground()).setStroke(0, color);//内部圆无描边,必须显示设为0} else {((GradientDrawable) iv_solid.getBackground()).setColor(0xffffffff);//内部圆的背景是白色的((GradientDrawable) iv_solid.getBackground()).setStroke(2, color);//内部圆有描边}}}
View资源
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content" ><ImageViewandroid:id="@+id/iv_circle"android:layout_width="15dp"android:layout_height="15dp"android:layout_centerInParent="true"android:background="@drawable/ring"android:src="#0000" /><ImageViewandroid:id="@+id/iv_solid"android:layout_width="10dp"android:layout_height="10dp"android:layout_centerInParent="true"android:background="@drawable/solid"android:src="#0000" /></RelativeLayout><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:innerRadius="4.5dp"android:shape="ring"android:thickness="2dp"android:useLevel="false" ><solid android:color="#fff" /><strokeandroid:width="0.5dp"android:color="#ffa726" /></shape><?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="oval" ><solid android:color="#00f" /></shape>
组合控件 圆环 ring的更多相关文章
- Android自定义控件View(三)组合控件
不少人应该见过小米手机系统音量控制UI,一个圆形带动画效果的音量加减UI,效果很好看.它是怎么实现的呢?这篇博客来揭开它的神秘面纱.先上效果图 相信很多人都知道Android自定义控件的三种方式,An ...
- 安卓自定义组合控件--toolbar
最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android stud ...
- Android自定义控件之自定义组合控件
前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发 ...
- Andriod 自定义控件之创建可以复用的组合控件
前面已学习了一种自定义控件的实现,是Andriod 自定义控件之音频条,还没学习的同学可以学习下,学习了的同学也要去温习下,一定要自己完全的掌握了,再继续学习,贪多嚼不烂可不是好的学习方法,我们争取学 ...
- Android 手机卫士--自定义组合控件构件布局结构
由于设置中心条目中的布局都很类似,所以可以考虑使用自定义组合控件来简化实现 本文地址:http://www.cnblogs.com/wuyudong/p/5909043.html,转载请注明源地址. ...
- 【转】android UI进阶之自定义组合控件
[源地址]http://blog.csdn.net/notice520/article/details/6667827 好久没写博客了.实在是忙不过来,不过再不总结总结真的不行了.慢慢来吧,有好多需要 ...
- android 组合控件接收不到点击事件的问题
android点击事件的传播是有子控件传给父控件,如果子控件处理过了,父控件不再处理,所以要想让组合控件接收点击事件,必须屏蔽子控件的点击事件. 设置组合控件的clickable和focusable属 ...
- Android开发之自定义组合控件
自定义组合控件的步骤1.自定义一个View,继承ViewGroup,比如RelativeLayout2.编写组合控件的布局文件,在自定义的view中加载(使用View.inflate())3.自定义属 ...
- Android自定义组合控件
今天和大家分享下组合控件的使用.很多时候android自定义控件并不能满足需求,如何做呢?很多方法,可以自己绘制一个,可以通过继承基础控件来重写某些环节,当然也可以将控件组合成一个新控件,这也是最方便 ...
随机推荐
- 【USACO 3.1.4】形成的区域
[描述] N个不同的颜色的不透明的长方形(1 <= N <= 1000)被放置在一张宽为A长为B的白纸上.这些长方形被放置时,保证了它们的边于白纸的边缘平行.所有的长方形都 ...
- 14_RHEL7安装mplayer
这里用nux-dextop仓库来配置 Nux Dextop桌面对CentOS和RHEL 6/7可用.它是一个面对CentOS.RHEL.ScientificLinux的含有许多流行的桌面和多媒体相关的 ...
- Nginx配置文件nginx.conf详细说明
Nginx配置文件nginx.conf详细说明 #worker_processes 8; #worker_cpu_affinity 00000001 00000010 00000100 0000100 ...
- mysql主从复制 (超简单) 转载
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 ...
- mongoDB之用户及权限设置
之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB.在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问. 我部署的环境是ubuntu 1 ...
- Delphi-Delete 过程
过程名称 Delete 所在单元 System 过程原型 procedure Delete ( var Source : string; StartChar : Integer; Count : In ...
- storm接入metaq时类不兼容错误 无法初始化MonitorLog
在实际的项目中,需要storm从metaq中读取数据,一开始就有日志问题,查到是storm/lib中的log4j-over-slf4j和slf4j-api.jar包的不兼容导致的,这些日志包使用时必须 ...
- struts2中的路径问题
<?xml version="1.0" encoding="GB18030" ?><%@ page language="java&q ...
- 基于memcached中命令分析函数tokenize_command改造的split函数
今天使用C重构php代码,需要手写一个split函数,于是就模仿memcached中获取用户命令的函数 static size_t tokenize_command(char *command, to ...
- FFT快速傅立叶
Description 给出两个n位10进制整数x和y,你需要计算x*y. Input 第一行一个正整数n.第二行描述一个位数为n的正整数x.第三行描述一个位数为n的正整数y. Output 输出一行 ...
