android 5.x—Tinting着色和Clipping裁剪
来源:互联网 发布:东莞广电网络官网 编辑:程序博客网 时间:2024/06/05 05:18
android 5.x中新添了2个属性可以操作图像,一个是Tinting,另一个是Clipping。
1、tinting
tinting有2个属性,分别是tint和tintMode。其中tint设置着的色调,tintMode设置着色的模式。只需在xml布局中定义tint和tingMode属性值。
下面展示不同tintMode展示的效果,
xml布局如下:
<?xml version="1.0" encoding="utf-8"?><ScrollView 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" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" android:tintMode="add" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" android:tintMode="multiply" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" android:tintMode="src_in" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" android:tintMode="src_atop" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:src="@mipmap/ic_launcher" android:tint="@android:color/holo_orange_dark" android:tintMode="src_over" /> </LinearLayout></ScrollView>
2、clipping
clipping可以改变一个视图的外形,如果一个view设置的background,clipping并不能修改background形状。
使用clipping修改外形时,需要使用ViewOutlineProvider修改outline,然后再通过setOutlineProvider将outline设置回原来的视图。
在布局中添加个TextView控件,需要注意的是,必须设置elevation属性,否则看不到效果,
<TextView android:id="@+id/iv_circle" android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:elevation="1dp" android:gravity="center" android:textColor="@color/holo_orange_dark" android:textSize="19sp" />
在java文件中的实现如下:
TextView iv_pandaCircle = (TextView)findViewById(R.id.iv_circle); ViewOutlineProvider viewOutlineProvider2 = new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { outline.setOval(0,0,view.getWidth(),view.getHeight()); } }; iv_pandaCircle.setOutlineProvider(viewOutlineProvider2);
结果显示如下,
下面显示另一张效果图,设置了background,仍然可以看到一点点圆角效果,大部分被background遮挡了,
设置的布局如下,
<TextView android:id="@+id/iv_panda_round_radius" android:layout_width="100dp" android:layout_height="100dp" android:layout_margin="10dp" android:background="@drawable/kungfu_panda" android:elevation="1dp" />
实现如下,
View iv_padanRoundRadius = findViewById(R.id.iv_panda_round_radius); ViewOutlineProvider viewOutlineProvider1 = new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { outline.setRoundRect(0,0,view.getWidth(),view.getRight(),50); } }; iv_padanRoundRadius.setOutlineProvider(viewOutlineProvider1);
0 0
- android 5.x—Tinting着色和Clipping裁剪
- Android 5.X 新特性详解(一)MD主题、Palette、视图阴影、Tinting(着色)和Clipping(裁剪)
- Android 5.x的Tinting和Clipping
- Material Design设计之Tinting(着色)和Clipping(裁剪)
- ym—— Android 5.0学习之Tinting和Clipping
- Android 5.0学习之Tinting和Clipping
- Android 5.0学习之Tinting和Clipping
- android material design 之elevation,tinting,clipping
- Android 5.X 新特性详解(一)——主题、Palette、阴影、着色和裁剪
- Material Design —— Elevation高度、shadows阴影、clipping裁剪、tint着色
- Android Material Design-Defining Shadows and Clipping Views(定义阴影和裁剪视图)-(四)
- Android Material Design-Defining Shadows and Clipping Views(定义阴影和裁剪视图)-(四)
- Android5.X对图形操作上有更多的功能。下面来看看Tinting(着色)
- 裁剪(Clipping)-Window GDI
- 裁剪(Clipping)-Window GDI
- html5 svg 第九章 裁剪和屏蔽 Clipping and Masking
- Android Clipping
- Android Clipping
- Android Studio NDk调试(基于gradle-experimental插件与LLDB)
- Codeforces 667D World Tour (最短路+枚举)
- 【周总结】——收拾行囊
- 【LeetCode】Power of Two 解题报告
- Marklogic学习 由浅入深(7)—— Marklogic应用开发指引
- android 5.x—Tinting着色和Clipping裁剪
- linux shell命令行选项与参数用法详解
- LeetCode|Word Pattern
- Volley框架的使用介绍
- Codeforces 667C Reberland Linguistics【DFS】
- 安卓java.lang.IllegalStateException: The specified child already has a parent.解决方案
- 《Vehicle Detection in High-Resolution Aerial Images Based on Fast Sparse Representation ...》论文笔记
- Android图片压缩方法总结
- Java中Filter、Servlet、Listener的学习