将view剪切为各种形状的view(类似微信聊天图片展示)。

UIImage *normal = [UIImage imageNamed:@"chatto_bg_normal"];// 这个是最终形状的图片。

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)]; //这个要被裁剪的view

UIImageView *imageViewMask = [[UIImageView alloc] initWithImage:normal];

imageViewMask.frame = CGRectInset(imageView.frame, 0.0f, 0.0f);

imageView.layer.mask = imageViewMask.layer;

[self.view addSubview:imageView];

时间: 2024-10-24 10:26:21

将view剪切为各种形状的view(类似微信聊天图片展示)。的相关文章

自定义View基础 - 最易懂的自定义View原理系列(1)

前言 自定义View原理是Android开发者必须了解的基础: 在了解自定义View之前,你需要有一定的知识储备: 本文将全面解析关于自定义View中的所有知识基础. 目录 1. View的分类 视图View主要分为两类: 类别 解释 特点 单一视图 即一个View,如TextView 不包含子View 视图组 即多个View组成的ViewGroup,如LinearLayout 包含子View 2. View类简介 View类是Android中各种组件的基类,如View是ViewGroup基类

Android View框架总结(六)View布局流程之Draw过程

转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52236145 View的Draw时序图 ViewRootImpl.performTraversals过程 ViewRootImpl.performDraw过程 View.draw方法 View.dispatchDraw过程 LinearLayout的onDraw过程 View的Draw时序图 前面几篇通过对View树的measure和layout过程分析事,接下来将结合前两步得到的测

Android View体系(二)实现View滑动的六种方法

相关文章: Android View体系(一)视图坐标系 1.View的滑动简介 View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动的处理.其实不管是那种滑动的方式基本思想都是类似的:当触摸事件传到View时,系统记下触摸点的坐标,手指移动时系统记下移动后的触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标. 实现View滑动有很多种方法,这篇文章主要讲解六种滑动的方法,分别是:layout().offsetLeftAndRight()与offs

【android】让popupwindow显示在view的上方并与该view水平居中对齐

首先,废话少说,先上效果图: 代码: public class MainActivity extends Activity implements OnClickListener{ private Button showBtn1; private Button showBtn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV

[老欧的问题]如何通过有ID的view找到其下没有ID的view

[问题来源] activity中有很多view是没有固定ID的, 如果想要找到它,进行操作不知道该如何进行. [解决方案] 所以说,没文化真可怕. 刚开始采用solo.getviews找到有ID的父view下所有的view,再去定位很容易出问题. 当时只是知道好像有个getChild的方法,却不知道该怎么弄. 感谢林咩咩告诉我方法. 1 ViewGroup fatherView = (ViewGroup)solo.getView(packageName.R.id.name); 2 ViewGro

Android View框架总结(二)View焦点

请尊重分享成果,转载请注明出处: http://blog.csdn.net/hejjunlin/article/details/52263256 前言:View框架写到第六篇,发现前面第二篇竟然没有,然后事情是在微信公众号发了,忘记在博客上更新,所以关注微信公众号的应该都看过了,趁今天有时间遂补上.(PS:本篇文章中源码均是android 6.0,请知晓) 本来之前说view下篇是写onMeasure,onLayou,onDraw相关的,笔者做盒子开发,遥控器按键,碰到的都是焦点控制相关.所以先

往一个控制器的View添加另一个控制器的View出现的异常

往一个控制的view上添加另一个控制器的View,(由于layout缘故)可能视图会发生异常,出现伸缩(被添加视图的view变小,或者变大),所以应该设置被添加控制器的View的属性,让他不随父控件的变化而变化, 被添加控制器.view.autoresizingMask = UIViewAutoresizingNone; 往一个控制器的View添加另一个控制器的View出现的异常,布布扣,bubuko.com

0521.如何拆分View Controller进而实现轻量级的View Controller[UIKit]

参考文章来自objcio网站 为什么要编写轻量级的View Controller?? 1.作为iOS项目中最大的文件,ViewControllers中的代码复用率几乎是最低的 2.重量级的View COntroller加大了测试的复杂度. 所以关注ViewController的瘦身,把业务逻辑.网络请求.Views的代码移到合适的地方,进而提高代码可读性.降低耦合.提高复用.降低测试难度极为重要 一.把DataSource和其他Protocols分离出来 比如uiTableView中的DataS

Android 特效View第三弹之闪烁View

Android  特效View第三弹之闪烁View 动态效果图我只做了半天还是失败了,给一个截图,剩下的全靠想象了 <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.empty.FlickerTextView android:id="@+id/flicker" android:l