当前位置: 首页 > news >正文

Android改造CardView为圆形View,Kotlin

Android改造CardView为圆形View,Kotlin

可以利用androidx.cardview.widget.CardView的cardCornerRadius特性,将CardView改造成一个圆形的View,技术实现的关键首先设定CardView为一个宽高相等的View(正方形),然后将radius特意设置成宽度(或高度,一样,因为正方形,宽高相等)的1/2,此时CardView自然就变成一个圆。

(1)kotlin代码运行时生成:

import android.content.Context
import android.graphics.Color
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.cardview.widget.CardViewclass MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val circularCardView = CircularCardView(this)circularCardView.setCardBackgroundColor(Color.BLUE)setContentView(circularCardView)}
}class CircularCardView(ctx: Context) : CardView(ctx) {override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {super.onMeasure(widthMeasureSpec, heightMeasureSpec)val width = measuredWidthsetMeasuredDimension(width, width)radius = (width / 2).toFloat()}
}

(2)在xml布局中实现:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"><androidx.cardview.widget.CardViewandroid:layout_width="200dp"android:layout_height="200dp"app:cardBackgroundColor="@android:color/holo_orange_light"app:cardCornerRadius="100dp"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent"></androidx.cardview.widget.CardView></androidx.constraintlayout.widget.ConstraintLayout>

Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案_android 官方圆角-CSDN博客Android RoundedBitmapDrawable:Android官方的圆角图形图象实现方案RoundedBitmapDrawable是Android在support v4的扩展包中新增的实现圆角图形的关键类,借助RoundedBitmapDrawable的帮助,可以轻松的以Android标准方式实现圆角图形图象。写一个简单的例子。写一个线性布局,竖直方向放三个Im_android 官方圆角https://blog.csdn.net/zhangphil/article/details/51829650Android CardView设置成普通的Framelayout-CSDN博客比如可以这样写代码,CardView就变成普通的FrameLayout:https://blog.csdn.net/zhangphil/article/details/52911922

http://www.lryc.cn/news/185419.html

相关文章:

  • Idea下面git的使用:变基、合并、优选、还原提交、重置、回滚、补丁
  • 【数据结构】什么是算法
  • 复旦大学EMBA:揭秘科创企业,领略未来战略!
  • 根据您的数据量定制的ChatGPT,改变客户服务的方式
  • 《Unity Shader 入门精要》笔记03
  • LINUX系统使用软件异地同步数据(灾备)
  • IDEA Rogstry中找不到compiler.automake.allow.when.app.running问题解决
  • c#设计模式-行为型模式 之 状态模式
  • 使用Docker安装JupyterHub
  • SpringCloudGateway网关整合swagger3+Knife4j3,basePath丢失请求404问题
  • html通过使用图像源的协议(protocol)相对 URL 来防止安全/不安全错误
  • 【SpringBoot】| Thymeleaf 模板引擎
  • Vue Router的进阶
  • 方案:快递站智能视频监控3大亮点汇总
  • Direct3D网格
  • docker安装wiki
  • bigemap在林业勘测规划设计行业的一些应用
  • 设计模式学习
  • Openfire身份认证绕过漏洞
  • 类目体系设计总结
  • gRPC之proto数据验证
  • 计算机竞赛 题目: 基于深度学习的疲劳驾驶检测 深度学习
  • css--踩坑
  • C超市商品信息查询系统
  • 黑马JVM总结(二十七)
  • 软件测试/测试开发丨Python异常处理 学习笔记
  • 026 - STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线
  • 【牛客网】OR59 字符串中找出连续最长的数字串
  • 云原生监控系统Prometheus:基于Prometheus构建智能化监控告警系统
  • C++ 学习系列 -- std::list