xml代码块:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
    <ImageView
        android:id="@+id/img_animations"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img1"/>
   
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#ff00ff"/>
   
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        >
       
        <Button
            android:id="@+id/but1"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="旋转"
            android:textColor="#ff00ff"/>
       
        <Button
            android:id="@+id/but2"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="位移"
            android:textColor="#ff00ff"/>
       
        <Button
            android:id="@+id/but3"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="渐变"
            android:textColor="#ff00ff"/>
       
        <Button
            android:id="@+id/but4"
            android:layout_weight="1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="缩放"
            android:textColor="#ff00ff"/>
       
    </LinearLayout>

</LinearLayout>

JAVA代码块:

package com.sumzom.animations;

import com.example.com.sumzom.teach.R;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;

/**
 * @author sumzom
 * QQ2356066132
 * tween动画基本使用方法
 * */
public class AnimationsTest extends Activity implements OnClickListener{

private Button but1,but2,but3,but4 = null;
 private ImageView img_animations = null;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.animations);
  
  initWithView();
  
  initWithLogic();
  
 }

private void initWithLogic() {
  // TODO Auto-generated method stub
  
 }

private void initWithView() {
  // TODO Auto-generated method stub
  but1 = (Button) findViewById(R.id.but1);
  but2 = (Button) findViewById(R.id.but2);
  but3= (Button) findViewById(R.id.but3);
  but4 = (Button) findViewById(R.id.but4);
  img_animations = (ImageView) findViewById(R.id.img_animations);
  
  but1.setOnClickListener(this);
  but2.setOnClickListener(this);
  but3.setOnClickListener(this);
  but4.setOnClickListener(this);
 }

@Override
 public void onClick(View arg0) {
  // TODO Auto-generated method stub
  switch (arg0.getId()) {
  case R.id.but1:
   but1();
   Toast.makeText(getApplicationContext(), "旋转",
     Toast.LENGTH_SHORT).show();
   
   break;
   
        case R.id.but2:
   but2();
         Toast.makeText(getApplicationContext(), "位移",
     Toast.LENGTH_SHORT).show();
         
   break;
   
        case R.id.but3:
   but3();
         Toast.makeText(getApplicationContext(), "渐变",
     Toast.LENGTH_SHORT).show();
         
   break;
   
        case R.id.but4:
   but4();
         Toast.makeText(getApplicationContext(), "缩放",
     Toast.LENGTH_SHORT).show();
         
   break;

default:
   break;
  }
 }

//缩放
 private void but4() {
  // fromX, toX, fromY, toY, pivotXType,
  //pivotXValue, pivotYType, pivotYValue)
  AnimationSet set = new AnimationSet(true);
  ScaleAnimation animation = new ScaleAnimation(
    0, 0.1f, 0, 0.5f, Animation.RELATIVE_TO_SELF,
    0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
  animation.setDuration(3000);
  set.addAnimation(animation);
  img_animations.startAnimation(set);
 }

/**
 * @author sumzom
 * QQ2356066132
 * tween动画基本使用方法
 * 渐变
 * */
 private void but3() {
  //fromAlpha, toAlpha起始背景透明度,结束透明度
  AnimationSet animationSet = new AnimationSet(true);
  AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0.2f);
  alphaAnimation.setDuration(5000);
  animationSet.addAnimation(alphaAnimation);
  img_animations.startAnimation(animationSet);
 }

//位移
 private void but2() {
  // TODO Auto-generated method stub
  /**
   * @author sumzom
         * QQ2356066132
         * tween动画基本使用方法
   * 1~2参数 fromXType fromXValue:起始位置X类型与值
   * 3~4参数 toXType toXValue:结束位置X类型与值
   * 5~6参数 fromYType fromYValue:起始位置Y类型与值
   * 7~8参数 toYType toYValue:结束位置Y类型与值
   * */
  AnimationSet set = new AnimationSet(true);
  TranslateAnimation TSAM = new TranslateAnimation(
    Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF,
    0, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF,
    0.5f);
  TSAM.setDuration(3000);
  set.addAnimation(TSAM);
  img_animations.startAnimation(set);
  
 }
 
 
 //旋转
 private void but1() {
  // TODO Auto-generated method stub
  AnimationSet set = new AnimationSet(true);
  /**
   * @author sumzom
         * QQ2356066132
         * tween动画基本使用方法
   * RotateAnimation:旋转动画
   * 参数一:fromDegrees,起始角度
   * 参数二:toDegrees,结束角度
   * 后四参数确定圆心是哪个
   * 参数三:pivotXType,X坐标类型
   * 参数四:pivotXValue,X值
   * 参数五:pivotYType,Y类型
   * 参数六:pivotYValue,Y值
   * */
  RotateAnimation animation = new RotateAnimation(0, 360,
    Animation.RELATIVE_TO_SELF, 0.5f,
      Animation.RELATIVE_TO_SELF, 0.5f);
  
  animation.setDuration(3000);
  set.addAnimation(animation);
  img_animations.startAnimation(set);
  
 }
 
}

运行效果:

 
 
 
 
 
 
 
 

安卓开发基础之tween动画基本使用,代码教学的更多相关文章

  1. android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传

    给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener( ...

  2. 安卓开发学习历程1——《第一行代码》coolweather项目setOnItemClickListener函数,Sql语句修改对模拟app程序机影响

    今天,将<第一行代码>最后实战的coolweather项目,认真做了一遍. 今晚,在书中第一阶段开发代码认眞在Android studio敲完,发现setOnItemClickListen ...

  3. Web前端开发基础 第四课(盒代码模型)

    盒模型代码简写 还记得在讲盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左.具体应用在margin和paddin ...

  4. Eclipse安卓开发环境搭建

    前提,Java SDK和Eclipse搭建完毕 下载android SDK并安装 (官网:http://sdk.android-studio.org/ ) 找到安装目录,运行“SDK Manager. ...

  5. iOS开发基础-九宫格坐标(6)

    继续对iOS开发基础-九宫格坐标(5)中的代码进行优化. 优化思路:把字典转模型部分的数据处理操作也拿到模型类中去实现,即将 ViewController 类实现中 apps 方法搬到 WJQAppI ...

  6. Android(安卓)开发通过NDK调用JNI,使用opencv做本地c++代码开发配置方法 边缘检测 范例代码

    以前写过两个Android开发配置文档,使用NDK进行JNI开发,这样能够利用以前已经写好的C++代码. 前两篇博客地址: http://blog.csdn.net/watkinsong/articl ...

  7. Android基础夯实--重温动画(一)之Tween Animation

    心灵鸡汤:真正成功的人生,不在于成就的大小,而在于你是否努力地去实现自我,喊出自己的声音,走出属于自己的道路. 摘要 不积跬步,无以至千里:不积小流,无以成江海.学习任何东西我们都离不开扎实的基础知识 ...

  8. iOS开发UI篇—核心动画(基础动画)

    转自:http://www.cnblogs.com/wendingding/p/3801157.html 文顶顶 最怕你一生碌碌无为 还安慰自己平凡可贵 iOS开发UI篇—核心动画(基础动画) iOS ...

  9. 安卓开发_浅谈Android动画(四)

    Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1.  ValueAnimator 基本属 ...

随机推荐

  1. IOS 通用颜色快速生成代码

    通常情况下我们是直接使用类似于#EE1289这样的代码来直接表示RGB颜色的.但是在IOS语言中,它的颜色表示方式比较另类,他是使用一个0-1的小数来表示颜色值的.这样的实现,或许能够表示更多的颜色值 ...

  2. .Net语言 APP开发平台——Smobiler学习日志:用Gridview控件设计较复杂的表单

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 1.从工具栏上的”Smobil ...

  3. Socket开发框架之消息的回调处理

    在一般的Socket应用里面,很多时候数据的发送和接收是分开处理的,也就是我们发送一个消息,不知道这个请求消息什么时候得到应答消息,而且收到对应的应答消息的时候,如果操作界面的内容,也是需要特别处理的 ...

  4. lua学习之table类型

    关系表类型,这是一个很强大的类型.我们可以把这个类型看作是一个数组.只是 C语言的数组,只能用正整数来作索引: 在Lua中,你可以用任意类型的值来作数组的索引,但这个值不能是 nil.同样,在C语言中 ...

  5. Kosaraju算法---强联通分量

    1.基础知识 所需结构:原图.反向图(若在原图中存在vi到vj有向边,在反向图中就变为vj到vi的有向边).标记数组(标记是否遍历过).一个栈(或记录顶点离开时间的数组).      算法描叙: :对 ...

  6. PHP程序员7小时学会Kotlin系列

    这是我尝试给自己一个目标去学会一门新语言的方法.正在创作中,敬请期待! 提纲 第一小时 概念 第二小时 基础 第三小时 函数 第四小时 类与对象 第五小时 类与对象二 第六小时 DSL 第七小时 工程 ...

  7. Oracle修改默认字符编码

    --查看Oracle数据库字符集: Sql代码 select userenv('language') from dual; 查询结果: SIMPLIFIED CHINESE_CHINA.AL32UTF ...

  8. 通过python将图片生成字符画

    基础知识: 1.python基础知识   快速学习链接:https://www.shiyanlou.com/courses/214 2.linux命令行操作   快速学习链接:https://www. ...

  9. Android填坑系列:在小米系列等机型上放开定位权限后的定位请求弹框

    背景: 近期因实际项目需要,在特定操作下触发定位请求,取到用户位置及附近位置. 问题: 经初步选型,最终决定接入百度定位,按照百度定位SDK Android文档,接入过程相对顺利.但随后发现,在小米系 ...

  10. 两个与spring事务相关的问题

    有些spring相关的知识点之前一直没有仔细研究:比如spring的事务,并不是没有使用,也曾经简单的在某些需要事务处理的方法上通过增加事务注解来实现事务功能,仅仅是跟随使用(甚至并未测试过事务的正确 ...