ym—— Android 5.0学习之Tinting和Clipping

前言

Android 5.0的知识点讲完,下一篇要给大家带来一个综合例子的Demo,以及谈谈我对Android 5.0的看法。

有人肯定会想为什么不是每一篇博文带一个demo,我觉得无论学习什么东西都需要自己去实践,所以我没有提供Demo,想先让大家自己去按照我写的博文步骤去实现这个,在实现的过程中会遇到困难,然后自己去查找解决方案,最后自己做出来,这样学习到的东西才能让我们印象深刻。

Drawable Tinting(着色)

设置 ImageView 的 android:tint 属性,可以达到以下效果:

layout:

    <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:elevation="1dip"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            />
    <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:elevation="1dip"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher"
            android:tint="@android:color/holo_red_dark"
            />

不仅可以设置tint还可以设置tintMode,分别设置不同的mode效果如下:

srceen

multiply

add

src_atop/src_in/src_over

Clipping Views(裁剪视图)

首先我们layout,设置两个正方形的TextView

    <TextView
            android:id="@+id/tv_1"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:elevation="1dip"
            android:layout_gravity="center"
            />
    <TextView
            android:id="@+id/tv_2"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:elevation="1dip"
            android:layout_gravity="center"
            />

然后我们将它们两分别裁剪成圆角正方形和圆形:

<span style="white-space:pre">	</span>v1 = findViewById(R.id.tv_1);
        v2 = findViewById(R.id.tv_2);
        ViewOutlineProvider viewOutlineProvider = new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {

                outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 10);
            }
        };
        ViewOutlineProvider viewOutlineProvider1 = new ViewOutlineProvider() {
            @Override
            public void getOutline(View view, Outline outline) {

                outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), view.getHeight() / 2);
            }
        };
        v1.setOutlineProvider(viewOutlineProvider);
        v2.setOutlineProvider(viewOutlineProvider1);

效果如下:

时间: 2024-07-29 11:11:49

ym—— Android 5.0学习之Tinting和Clipping的相关文章

ym—— Android 5.0学习之CardView

前言 CardView顾名思义,就是想卡片一样的控件,如图: Android 5.0之前,我们有两种方案做出这种效果: 1.通过设置背景图 2.设置配置Shape文件 而现在我们需要麻烦美工MM,也不需要配置麻烦的Shape文件,只需要简单的设置几个属性即可,那就是用我们CardView CardView CardView继承了FrameLayout类,并让你在里面的卡片中(显示)有跨平台一致性的外观.CardView控件可以有阴影和圆角(效果). 要创建具有阴影效果的卡片,可以使用card_v

ym—— Android 5.0学习之Activity过渡动画

前言 Activity Transition: 提供了三种Transition类型: 进入:一个进入的过渡(动画)决定activity中的所有的视图怎么进入屏幕. 退出:一个退出的过渡(动画)决定一个activity中的所有视图怎么退出屏幕. 共享元素:一个共享元素过渡(动画)决定两个activities之间的过渡,怎么共享(它们)的视图. <span style="font-size:18px;"><span style="font-family: Ari

ym—— Android 5.0学习之使用Material主题

前言 创建完模拟器了,我想大家已经迫不及待的想开发Android 5.0的项目了, 看完这篇后我们将可以自定义Material主题了~! 新的material主题提供了什么? 可以让你设置调色板的系统控件. 为控件(设计的)触摸反馈动画. Activity过渡动画 我们来看一下Android给我提供了多少Material的主题吧~! 看来给我不少常用的主题,但是这些主题远远满足不了我大佬们的需求~!至于为什么,我想大家都懂得. 让我们来自定义Material主题吧 根据官方提供图片提示的来自定义

android 7.0 学习笔记(一)

导读 增强的Doze模式 后台优化 Data Saver 一.增强的Doze模式 Android N对Android M引进的Doze模式进行了进一步的增强,变化体现在两个方面.一方面是降低了进入Doze模式的条件,Android M中的条件是不插电,屏幕熄灭且静置一段时间,在Android N中去掉了静置的条件,这个改变大大增加了设备进入Doze模式的机会,因而使得Doze对应用程序的影响大大增加.另一方面,Doze模式被分成了两个阶段,当设备切断电源,熄灭屏幕一段时间,会进入到第一阶段,切断

Android Dagger2.0 学习一下

0.前言 个人感觉通过项目学习一些牛逼的框架,效果挺不错的. 1.个人理解 一直觉得Dagger2比较高大上,网上看了很多资料,很多,没有感觉. 然后怀疑智商问题,然后放弃了. 最后因为要做一个项目,不得不碰Dagger2了,然后好像理解了挺多. 最重要的一点就是@Inject,可以使一个对象变得有意义. 使一个对象有意义肯定是实例化了,它有两种方式实例化,一种通过在构造函数前加一个@Inject,一种是通过Module中new一个实例(原理是先找Module里面是否new过,然后再找构造函数里

Android 5.0内核和源代码学习(2)——源码下载和系统启动过程分析

一.Android源码下载 上一次简单介绍了Android系统的层次结构,这次开始动真格了--下载源码和分析源码! 那么,Android的源码从哪下?当然是谷歌官网,下载方法官网也讲得很详细,但是奈何中国的墙比较厚,所以上面的办法是没用的,当然,有些是有用的,地址:http://source.android.com/source/downloading.html 谷歌官网没办法下,幸好还有一些国内网站,废话不多说,直接开始步骤: 工具和环境:VM虚拟机+Ubantu14系统 第一步:Ubantu

老邓的andorid学习笔记-Android 4.0 开发环境搭建

目前android版本早已经四4.xx了,5.0的版本也快出来了.  关于基本环境搭建有好多的文章都介绍过. 我在这里简单的整理了一下,就不用自己专门写此类的文章了. Android SDK 4.0.3 开发环境配置及运行     http://bk-lin.iteye.com/blog/1477808 android 4.0 for windows 7 开发环境搭建   http://cash.iteye.com/blog/1463253 Windows搭建Eclipse+JDK+SDK的An

android 5.0新特性学习总结之下拉刷新(一)

android 5.0 后google终于在 support v4 包下 增加了下拉刷新的控件 项目地址: https://github.com/stormzhang/SwipeRefreshLayoutDemo xml: <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/swi

ym——Android仿网易新闻导航栏PagerSlidingTabStrip源码分析

转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 前言 最近工作比较忙,所以现在才更新博文,对不住大家了~!言归正传,我们来说说这个PagerSlidingTabStrip,它是配合ViewPager使用的导航栏,网易新闻就是用的这个导航,我们仔细观察这个导航栏不仅他是跟着ViewPager滑动而滑动,而且指示器还会随着标题的长度而动态的变化长度,还可以改变多种样式哦~! · 下载地址: Github:https://github.