项目知识(六)

一、如何在代码中将View放入ViewGroup中(组合控件)

需求:创建一个类似百度贴吧刷新的按钮,但又不想用xml来布局。

要求:创建一个View类继承RelativeLayout然后将ImageView填充的RelativeLayout中

那么怎么从JAVA代码中将ImageView放入RelativeLayout中。

public class RefreshView extends RelativeLayout implements View.OnClickListener{
    private ImageView mIvRefresh;
    private Context mContext;

    public RefreshView(Context context) {
        super(context);
        initView(context);
    }

    public RefreshView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView(context);
    }

    public RefreshView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView(context);
    }

    private void initView(Context context){
        mContext = context;
        //①、创建View实例
        mIvRefresh = new ImageView(context);
        mIvRefresh.setImageResource(R.mipmap.ic_launcher);
        //②、创建布局
        LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        //这里最重要:addRule()设置布局约束,这里是relativeLayout所以使用relativeLayout的约束,跟xml一样
        params.addRule(RelativeLayout.CENTER_IN_PARENT,TRUE);
       //添加进RelativeLayout中
 addView(mIvRefresh,params);
    }

}
    

RefreshView

二、实现ImageView中的图片旋转重复播放效果

用到的知识:①、如何在代码中和xml中创建Animation ②、如何配置Animation 插值器、重复次数  ③、View如何调用Animation

这里选择代码中创建Animation

private ImageView mIvRefresh; 

private void setRefreshAnimStart(){
        LinearInterpolator lin = new LinearInterpolator();
        //创建Animation    Animation.RELATIVE_TO_SELF表示以自身为点
        Animation am = new RotateAnimation( 0, +360,
                Animation.RELATIVE_TO_SELF, 0.5f,
                Animation.RELATIVE_TO_SELF, 0.5f );

        // 动画开始到结束的执行时间(1000 = 1 秒)
        am. setDuration ( 1000 );
        // 动画重复次数(-1 表示一直重复)
        am.setRepeatCount ( -1 );
        //设置插值器
        am.setInterpolator(lin);
        // view控件调用Animation
        mIvRefresh.startAnimation(am);
        isFinish = false;
    }

RefreshView

时间: 2024-08-28 14:12:47

项目知识(六)的相关文章

ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)

原文:ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF) 先上一段代码,了解一下 .NET Core 配置数据的结构. 新建一个 控制台项目,添加一个文件 json.json ,文件内容如下: { "country": "cn", "person": { "id": 1, "address": { "addName": "chengdu"

研发无忧:超过90%的程序员都需要深入学习项目知识

相信大多程序员做久了,都会有一种迷茫,感觉自己像机器一样编码. 对自己做过的功能模块也不敢拍胸脯说质量是过硬的. 程序员的工作性质,决定了大多数人不能在这个岗位上做太久. 早点转型成为了必然. 即便不转型,要把代码写好,也应该深入学习下项目管理的知识. 比如项目规范.业务架构.过程管理.质量管理甚至软件测试的知识. 一旦学习了这些层面的知识,程序员水平才可能大幅提升. 这是因为, 每一门技术,每一段代码,都是为了解决问题. 换句话说,技术是为了需求而存在. 脱离了需求,孤立的技术再牛逼,也难体现

python基础知识六 文件的基本操作+菜中菜

基础知识六 文件操作 ? open():打开 ? file:文件的位置(路径) ? mode:操作文件模式 ? encoding:文件编码方式 ? f :文件句柄 f = open("1.txt",mode = 'r',encoding = 'utf-8') print(f.read()) f.close 1.文件操作模式: ? r,w,a(重要) ? rb,wb,ab(次要) ? r+,w+,a+ 1.1 r/w/a 1. r操作: f = open('1.txt','r') pri

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

前言 系列文章:[传送门] 项目需求: http://www.cnblogs.com/Alandre/p/3733249.html 上一博客写的是基本调度,后来这只能用于,像每天定个时间 进行数据库备份.但是,远远不能在上次的需求上实现.所以需要实现spring4.0 整合 Quartz 实现动态任务调度. 正文 spring4.0 整合 Quartz 实现任务调度.这真是期末项目的最后一篇,剩下到暑假吧.  Quartz 介绍 Quartz is a full-featured, open s

团队项目(六)- Alpha阶段项目复审(江山代有才人秃)

排名仅代表个人观点: 小组名字 优点 缺点&Bug报告 排名 中午吃啥队 从测试链接来看,作为一个订餐的APP,有着跟现在的订餐APP相似的功能,很完整,是一个踏踏实实做出来的项目 向购物车中添加菜品时,购物车,显示价格不能及时同步,设计的原型图(app端)像素的误差,即标明的像素与app端实际像素有误差,导致app界面出现错位,redis缓存连接超时,不生效,过期时间等问题,导致前端获取数据遇到一些问题 1 GG队 音乐冒险类游戏,新颖的游戏模式,实现动态方块的生成以及动画表现,通过用户自行导

团队项目(六)- 事后诸葛亮分析(江山代有才人秃)

一.总结提纲 (一)Postmortem 1.设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件主要是给玩家用户提供一个休闲途径,我们的定义很明确,做一款躲避障碍的小游戏,在前面的博客中对典型用户和场景进行过明确的描述. 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?)? 很遗憾,限于精力和时间,我们仅完成了大部分目标,原计划功能已实现的有游戏基础界面,正常游戏功能(小球旋转.障碍生

angularJS之项目知识

多页应用与单页应用(SPA)多页应用:一个项目中有多个完整的.html页面单页应用:只有一个.html是完整的(缺少body主体),其它.html都是不完整的(可能只是一个div而已)多页应用:多个页面间的跳转可以使用超链接.表单提交.JS-单页应用:多个"伪页面"间的跳转可以使用超链接.JS(...)多页应用:页面切换是同步请求:客户端先删除第一个页面的DOM结构,发起HTTP请求,等待服务器给第 二个页面的响应数据单页应用:伪页面切换是异步请求:客户端首先请求一个完整的页面,然后再

民宿项目知识_服务器路径与文件的存储

1,文件的硬盘存储路径(文件存放在服务器的根目录,而不是项目,防止服务器重启,资源丢失) 得到项目的名字:如,renli String path1 = request.getContextPath(); path1=path1.substring(1); 得到项目的绝对路径:如,F:\apache-tomcat-8.0.33\webapps\renli\resources String path2 = request.getSession().getServletContext().getRea

项目分享六:图片的延迟加载

一.关于延迟加载 图片的延迟加载,是 APP 里常用的一种技术,图片产生会生成一张预览图,等到原图下载完成后,再替换掉. 如下面二张图所示.实现起来,虽然不是很难,但要把它封装好,也不大容易.在这里主要讲解一下 ChiTuStore 项目中是如何封装. 二.图片的绑定 我们打开 App/Module/Home/Index.html 文件,可以找到下面一段代码,这段代码是用来对首页产品列表进行绑定的,我要关注的是 <img data-bind="attr:{src:ImagePath}&qu