ImageView控件开发效果总结(边框效果,滤镜效果)

简介:

前言

     本文总结了ImageView 开发过程中,用到效果总结

1 ImageView添加圆角边框

  下面是示例效果图

实现过程说明:

Step  One  设置ImageView 带一定宽度的Padding,同时设置android:adjustViewBounds 为True

 

复制代码
 <ImageView
                                android:background="@drawable/img_on"
                                android:id="@+id/imageViewt"
                                android:adjustViewBounds="true"
                                android:padding="2dp"
                                android:layout_width="fill_parent"
                                android:layout_height="wrap_content"
                                android:src="@drawable/icon" />
复制代码

Step Two 设置 图片背景

复制代码
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:useLevel="false">
  
   <corners
     android:radius="5dp"
    />

 <gradient
     android:startColor="#848484"
     android:centerColor="#848484"
     android:useLevel="false"
     android:type="linear"
     android:angle="90"
     android:endColor="#848484">
     
   </gradient>
   
</shape>
复制代码

 

2 设置ImageView 带有滤镜效果,下面例子是其中的变灰效果

实现过程说明:

使用设置图片对象的ColorFilter属性,把ColorMatrixColorFilter设置灰度通道,传递到ColorFilter属性中

注意两点:1 图片滤镜效果,只是在图层上面 加了一层效果,不是对图片的实际修改

              2 如果对单个图片加滤镜效果后,其他地方使用到这个图片也会变成带滤镜效果。

下面是实际实现代码

复制代码
public final float[] BT_SELECTED = new float[] {1,0,0,0,99,0,1,0,0,99,0,0,1,0,99,0,0,0,1,0};
     public final float[] BT_NOT_SELECTED = new float[]  {1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0};;
     public final static float[] BT_SELECTED1 = new float[] {         
            0.338f, 0.339f, 0.332f, 0, 0,       
            0.338f, 0.339f, 0.332f, 0, 0,  
            0.338f, 0.339f, 0.332f, 0, 0,  
            0, 0, 0, 1, 0  
        };  

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        ImageView  ib2;
        ib1 = (ImageView) findViewById(R.id.imageViewt);
        ib2 = (ImageView) findViewById(R.id.imageView2);
  
        ib1.setOnTouchListener(new  ImageView.OnTouchListener()
        {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                
                    ib1.setImageResource(R.drawable.icon1);
                    ib1.getDrawable().setColorFilter(
                                new ColorMatrixColorFilter(BT_SELECTED));
                
                ib1.setImageDrawable(ib1.getDrawable());
                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    ib1.getDrawable().clearColorFilter();
                
                    ib1.getDrawable().setColorFilter(new ColorMatrixColorFilter(BT_NOT_SELECTED));
                    ib1.setImageResource(R.drawable.icon2);
                }
                return false;
            }
        });
        
       
    }
相关文章
|
Java API 调度
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
Android系统 自定义开机广播,禁止后台服务,运行手动安装应用接收开机广播
1070 0
|
10月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
405 5
|
7天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
6天前
|
存储 人工智能 Java
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
本文讲解 Prompt 基本概念与 10 个优化技巧,结合学术分析 AI 应用的需求分析、设计方案,介绍 Spring AI 中 ChatClient 及 Advisors 的使用。
312 130
AI 超级智能体全栈项目阶段二:Prompt 优化技巧与学术分析 AI 应用开发实现上下文联系多轮对话
|
18天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1328 8
|
5天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
17天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1407 87
|
6天前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
311 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)