Android碎纸机效果
1.总体思想
活用padding和margin
2.实现过程
 public class PopupShredderView extends FrameLayout{
     public PopupShredderView(Context context, AttributeSet attrs, int defStyle) {
         super(context, attrs, defStyle);
         init();
     }
     public PopupShredderView(Context context, AttributeSet attrs) {
         super(context, attrs);
     init() ;
     }
     public PopupShredderView(Context context) {
         super(context);
     init();
     }
     private void init(){
       final LayoutInflater layoutInflater = LayoutInflater.from(context);
       mView = layoutInflater.inflate(R.layout.popup_shredder_clean, this, false);
       mCleanText1.setImageDrawable(themeManager.getDrawable(R.drawable.exit_clean_date));
       mCleanText2.setBackgroundDrawable(themeManager.getDrawable(R.drawable.exit_clean_result));
       mCleanText2.setVisibility(View.INVISIBLE);
     }
     public void update(int step, int offset){
             if (step == STEP_END) {
                    return;
                }
         int clean1Offset = mCleanText1.getMeasuredHeight() * step / STEP_END;
         int maxClean1Offset=mCleanText1.getMeasuredHeight();
         if (offset + clean1Offset < maxClean1Offset) {
             clean1Offset = clean1Offset + offset;
         } else {
             clean1Offset = maxClean1Offset;
         }
         mCleanText1.setPadding(0, clean1Offset, 0, 0);
         mCleanText2.setVisibility(View.VISIBLE);
         int clean2Offset = ((View) mCleanText2.getParent()).getMeasuredHeight() * (STEP_END - step)
                 / STEP_END;
         int maxClean2Offset= 0;
         if (clean2Offset - offset > maxClean2Offset) {
             clean2Offset = clean2Offset - offset;
         } else {
             clean2Offset = maxClean2Offset;
         }
         LinearLayout.LayoutParams layoutParams = (android.widget.LinearLayout.LayoutParams) mCleanText2
                 .getLayoutParams();
         layoutParams.bottomMargin = clean2Offset;
         mCleanText2.setLayoutParams(layoutParams);
         invalidate();
     }
 }
3.布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/menubar"
android:layout_width="192dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical" > <ImageView
android:id="@+id/exit_clean1"
android:layout_width="wrap_content"
android:layout_height="@dimen/popup_shredder_top_heigh"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="21dp"
android:contentDescription="@string/app_name"
android:scaleType="matrix" /> <LinearLayout
android:layout_width="wrap_content"
android:layout_height="@dimen/popup_shredder_top_heigh"
android:layout_marginLeft="28dp"
android:layout_marginTop="@dimen/popup_shredder_bottom_top_margin"
android:orientation="vertical" > <ImageView
android:id="@+id/exit_clean2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/app_name" />
</LinearLayout> <ImageView
android:id="@+id/exit_clean3"
android:layout_width="wrap_content"
android:layout_height="@dimen/popup_shredder_delete_heigh"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/popup_shredder_delete_top_margin"
android:contentDescription="@string/app_name" /> </RelativeLayout>
Android碎纸机效果的更多相关文章
- 在Mac系统上配置Android真机调试环境
		在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ... 
- 【Android源代码下载】收集整理android界面UI效果源码
		在Android开发中,Android界面UI效果设计一直都是很多童鞋关注的问题,今天给大家分享下大神收集整理的多个android界面UI效果,都是源码,都是干货,贡献给各位网友! 话不多说,直接上效 ... 
- android真机自动化测试
		appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices 看结果是否是多个devices ,如果是这个问题,停掉多余设 ... 
- OpenJudge 2803 碎纸机 / Poj 1416 Shredding Company
		1.链接地址: http://poj.org/problem?id=1416 http://bailian.openjudge.cn/practice/2803 2.题目: 总时间限制: 1000ms ... 
- Android真机测试,连接到本地服务器的方法
		1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ... 
- Android 真机投影到PC端,真机投影工具;Vysor
		Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor 
- Unity Frame Debugger连接Android真机调试
		当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ... 
- Unity Profiler连接Android真机调试
		Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ... 
- 使用ADB无线连接Android真机进行调试
		使用ADB无线连接Android真机进行调试 其实这已经是一个很古老的知识了,记录一下备忘. 准备工作 手机和电脑需要在同一个局域网内 电脑上已经安装好ADB工具,可以是Mac或者Windows ... 
随机推荐
- 关于inet_ntop、inet_pton中的n和p分别代表的意义
			函数名中的p和n非别代表表达(presentation)和数值(numeric).地址的表达格式通常是ASCII字符串,数值格式则是存放到套接字地址结构中的二进制值. 参考自:https://blog ... 
- 树莓派搭建Seafile个人网盘
			步骤一.安装Seafile依赖包 yum install python-setuptools python-ldap python-memcached MySQL-python mariadb mar ... 
- 自定义ngCloak
			场景: 一个非常复杂的表单页面,页面有5个标签,第五个标签中又有5个标签,也就是说一共有9个标签,每个标签中都有一个表单,表单之间相互关联.所有表单项(包括复合的),有80多个数据.全部东西写在一个h ... 
- Ubuntu配置SSH服务器
			SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远 ... 
- POJ 2251-Dungeon Master (三维空间求最短路径)
			Description You are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is co ... 
- [图文教程] 使用Git 提交项目到码云
			目录 1. 环境准备 2. 开发工具配置Git和SSH 3. 配置SSH到码云 4. 创建一个项目 5. Clone项目到本地 6. Push项目到码云 1. 环境准备 1.1 本机配置Git Hom ... 
- Apache手册
			一.apache的安装 如果不指定安装位置,默认为/usr/local/apache2/ 
- python023 Python3 标准库概览
			Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ... 
- 洛谷P1759 通天之潜水
			题目背景 直达通天路·小A历险记第三篇 题目描述 在猴王的帮助下,小A终于走出了这篇荒山,却发现一条波涛汹涌的河拦在了自己的面前.河面上并没有船,但好在小A有n个潜水工具.由于他还要背重重的背包,所以 ... 
- noj 2033 一页书的书 [ dp + 组合数 ]
			传送门 一页书的书 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 53 测试通过 : 1 ... 
