自定义控件之RoundView

本文详细介绍了如何在Android中自定义一个RoundImageView控件,通过继承ImageView实现圆形和矩形圆角图片的功能。步骤包括定义控件、设置自定义属性、在XML布局中使用、获取属性、测量尺寸、渲染图片以及处理异常情况。
摘要由CSDN通过智能技术生成
自定义控件一般分为分为4种,继承现有空间的 view  和  viewGoup,  还有就是自定义 view  和 viewGroup,今天我们以第一种情况为例,继承ImageView实现一个圆形图片和矩形圆角图片
第一步:   定义自定义控件继承ImageView类,重写构造方法,一般重新两个就可以了,其他的构造函数我们用不到,构造函数的第三个第四个是
               主题
                
public class RoundImageView extends ImageView {
  
public RoundImageView(Context context) {
super(context);
}

public RoundImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
}
          
第二步:  在values创建attrs.xml 进行自定义属性,我们定义了 圆形  矩形圆角 及 角的度数这几个属性
 
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="RoundImageView">
<attr name="bordaoRadius" format="dimension"/> <!-- 我们想要的角度 -->
<attr name="type"> <!-- 在这里面定义我们想要的类型 -->
<enum name="round" value="0"/>
<enum name="round" value="1"/>
</attr>
</declare-styleable>


</resources>

第三步 :  我们可以直接在xml布局文件中声明我们的自定义控件了
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.qkhl.mycustomerview.MainActivity">

<com.qkhl.mycustomerview.RoundImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:type="round"
app:bordaoRadius="7dp"/>
</RelativeLayout>
第四步:  在构造函数中获取我们设置的属性
 
    /**
* 圆角大小的默认值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值