版权声明:本文为博主原创文章,未经博主允许不得转载。
http://www.360doc.com/content/16/0322/07/31855033_544211806.shtml
Tween动画是展现出旋转、渐变、移动、缩放的这么一种转换过程,即补间动画。Tween动画有两种定义方式:XML形式,编码形式。
XML定义动画,按照动画定义语法完成XML,置于/res/anim目录下,文件名作为资源ID引用;
编码定义动画,使用Animation对象。
XML定义动画语法:
XML文件中必须有一个根元素,可以是<alpha>、<scale>、<translate>、<rotate>中的任意一个,也可以是<set>来管理一个由前面几个元素组成的动画集合。
<set>是一个动画容器,管理多个动画的群组,与之相对应的Java对象是AnimationSet。
它有两个属性,
android:interpolator代表一个插值器资源,可以引用系统自带插值器资源,也可以用自定义插值器资源,默认值是匀速插值器;稍后我会对插值器做出详细讲解。
android:shareInterpolator代表<set>里面的多个动画是否要共享插值器,默认值为true,即共享插值器,如果设置为false,那么<set>的插值器就不再起作用,我们要在每个动画中加入插值器。
<alpha>是渐变动画,可以实现淡入和淡出的效果,与之对应的Java对象是AlphaAnimation。
android:fromAlpha属性代表起始alpha值,浮点值,范围在0.0和1.0之间,分别代表透明和完全不透明,
android:toAlpha属性代表结尾alpha值,浮点值,范围也在0.0和1.0之间。
1
2
3
4
5
6
7
8
9
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<!-- 表示透明度从0.1到1.0,时长为3000ms。-->
<
alpha
android:fromAlpha
=
"0.1"
android:toAlpha
=
"1.0"
android:duration
=
"3000"
/>
</
set
>
|
<scale>是缩放动画,可以实现动态调控件尺寸的效果,与之对应的Java对象是ScaleAnimation。
android:fromXScale属性代表起始的X方向上相对自身的缩放比例,浮点值,比如1.0代表自身无变化,0.5代表起始时缩小一倍,2.0代表放大一倍;
android:toXScale属性代表结尾的X方向上相对自身的缩放比例,浮点值;
android:fromYScale属性代表起始的Y方向上相对自身的缩放比例,浮点值;
android:toYScale属性代表结尾的Y方向上相对自身的缩放比例,浮点值;
android:pivotX属性代表缩放的中轴点X坐标,浮点值,
android:pivotY属性代表缩放的中轴点Y坐标,浮点值,对于这两个属性,如果我们想表示中轴点为图像的中心,我们可以把两个属性值定义成0.5或者50%。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
scale
android:interpolator
=
"@android:anim/accelerate_decelerate_interpolator"
android:fromXScale
=
"0.0"
android:toXScale
=
"1.4"
android:fromYScale
=
"0.0"
android:toYScale
=
"1.4"
android:pivotX
=
"50%"
android:pivotY
=
"50%"
android:fillAfter
=
"false"
android:duration
=
"700"
/>
</
set
>
<!-- 尺寸伸缩动画效果 scale
属性:interpolator 指定一个动画的插入器,共三种:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点型值:
fromXScale 属性为动画起始时 X坐标上的伸缩尺寸
toXScale 属性为动画结束时 X坐标上的伸缩尺寸
fromYScale 属性为动画起始时Y坐标上的伸缩尺寸
toYScale 属性为动画结束时Y坐标上的伸缩尺寸
说明:
以上四种属性值
0.0表示收缩到没有
1.0表示正常无伸缩
值小于1.0表示收缩
值大于1.0表示放大
pivotX 属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明:
以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
布尔型值:
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用
-->
|
<translate>是位移动画,代表一个水平、垂直的位移。与之对应的Java对象是TranslateAnimation。
android:fromXDelta属性代表起始X方向的位置,
android:toXDelta代表结尾X方向上的位置,
android:fromYScale属性代表起始Y方向上的位置,
android:toYDelta属性代表结尾Y方向上的位置,
以上四个属性都支持三种表示方式:浮点数、num%、num%p;如果以浮点数字表示,代表相对自身原始位置的像素值;如果以num%表示,代表相对于自己的百分比,比如toXDelta定义为100%就表示在X方向上移动自己的1倍距离;如果以num%p表示,代表相对于父类组件的百分比。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
translate
android:fromXDelta
=
"30"
android:toXDelta
=
"-80"
android:fromYDelta
=
"30"
android:toYDelta
=
"300"
android:duration
=
"2000"
/>
<!-- translate 位置转移动画效果
整型值:
fromXDelta 属性为动画起始时 X坐标上的位置
toXDelta 属性为动画结束时 X坐标上的位置
fromYDelta 属性为动画起始时 Y坐标上的位置
toYDelta 属性为动画结束时 Y坐标上的位置
注意:
没有指定fromXType toXType fromYType toYType 时候,
默认是以自己为相对参照物
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</
set
>
|
<rotate>是旋转动画,与之对应的Java对象是RotateAnimation。
android:fromDegrees属性代表起始角度,浮点值,单位:度;
android:toDegrees属性代表结尾角度,浮点值,单位:度;
android:pivotX属性代表旋转中心的X坐标值,
android:pivotY属性代表旋转中心的Y坐标值,
这两个属性也有三种表示方式,数字方式代表相对于自身左边缘的像素值,num%方式代表相对于自身左边缘或顶边缘的百分比,num%p方式代表相对于父容器的左边缘或顶边缘的百分比。
另外,在动画中,如果我们添加了android:fillAfter=”true”后,这个动画执行完之后保持最后的状态;android:duration=”integer”代表动画持续的时间,单位为毫秒。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
rotate
android:interpolator
=
"@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees
=
"0"
android:toDegrees
=
"+350"
android:pivotX
=
"50%"
android:pivotY
=
"50%"
android:duration
=
"3000"
/>
<!-- rotate 旋转动画效果
属性:interpolator 指定一个动画的插入器,共三种:
accelerate_decelerate_interpolator 加速-减速 动画插入器
accelerate_interpolator 加速-动画插入器
decelerate_interpolator 减速- 动画插入器
其他的属于特定的动画效果
浮点数型值:
fromDegrees 属性为动画起始时物件的角度
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度
说明:
当角度为负数——表示逆时针旋转
当角度为正数——表示顺时针旋转
(负数from——to正数:顺时针旋转)
(负数from——to负数:逆时针旋转)
(正数from——to正数:顺时针旋转)
(正数from——to负数:逆时针旋转)
pivotX 属性为动画相对于物件的X坐标的开始位置
pivotY 属性为动画相对于物件的Y坐标的开始位置
说明: 以上两个属性值 从0%-100%中取值
50%为物件的X或Y方向坐标上的中点位置
长整型值:
duration 属性为动画持续时间
说明: 时间以毫秒为单位
-->
</
set
>
|
java使用XML中定义的动画:
1
2
3
4
5
6
7
8
|
public
static
Animation loadAnimation (Contextcontext,
int
id)
//第一个参数Context为程序的上下文
//第二个参数id为动画XML文件的引用
//例子:
ImageView image = (ImageView) findViewById(R.id.image);
Animation testAnim = AnimationUtils.loadAnimation(
this
, R.anim.test);
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
image.startAnimation(testAnim);
|
插值器
首先要了解为什么需要插值器,因为在补间动画中,我们一般只定义关键帧(首帧或尾帧),然后由系统自动生成中间帧,生成中间帧的这个过程可以成为“插值”。插值器定义了动画变化的速率,提供不同的函数定义变化值相对于时间的变化规则,可以定义各种各样的非线性变化函数,比如加速、减速等。下面是几种常见的插值器:
Interpolator对象 | 资源ID | 功能作用 |
---|---|---|
AccelerateDecelerateInte | @android:anim/accelerate_decelerate_interpolator | 先加速再减速 |
AccelerateInterpolator | @android:anim/accelerate_interpolator | 加速 |
AnticipateInterpolator | @android:anim/anticipate_interpolator | 先回退一小步然后加速前进 |
AnticipateOvershootInter | @android:anim/anticipate_overshoot_interpolator | 在上一个基础上超出终点一小步再回到终点 |
BounceInterpolator | @android:anim/bounce_interpolator | 最后阶段弹球效果 |
CycleInterpolator | @android:anim/cycle_interpolator | 周期运动 |
DecelerateInterpolator | @android:anim/decelerate_interpolator | 减速 |
LinearInterpolator | @android:anim/linear_interpolator | 匀速 |
OvershootInterpolator | @android:anim/overshoot_interpolator | 快速到达终点并超出一小步最后回到终点 |
插值器使用法:
<set android:interpolator=”@android:anim/accelerate_interpolator”>
…
</set>
个性化插值器:
如果系统提供的插值器不能满足需要,可以通过修改插值器的属性优化,比如修改AnticipateInterpolator的加速速率,调整CycleInterpolator的循环次数等。
常见的插值器可调整的属性:
<accelerateDecelerateInte
<accelerateInterpolator> android:factor 浮点值,加速速率,默认为1
<anticipateInterploator> android:tension 浮点值,起始点后退的张力、拉力数,默认为2
<anticipateOvershootInter
<bounceInterpolator> 无
<cycleInterplolator> android:cycles 整数值,循环的个数,默认为1
<decelerateInterpolator> android:factor 浮点值,减速的速率,默认为1
<linearInterpolator> 无
<overshootInterpolator> 浮点值,超出终点后的张力、拉力,默认为2
使用修改插值器属性法
在/res/anim下创建一个XML文件(以修改overshootInterpolator属性为例)命名为my_overshoot_interpolator.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<overshootInterpolator xmlns:android=”http://schemas.android.com/apk/res/android”
引用到自定义的插值器
<scale xmlns:android=”http://schemas.android.com/apk/res/android”
自定义插值器
如果以上的修改系统插值器属性仍无法满足需要,可以自定义插值器。
转自:http://hi.baidu.com/yimifeitian/blog/item/e432e81ed8385317314e1568.html
补间动画(Tween Animation)
AlphaAnimation:透明度(alpha)渐变效果,对应<alpha/>标签。
TranslateAnimation:位移渐变,需要指定移动点的开始和结束坐标,对应<translate/>标签。
ScaleAnimation:缩放渐变,可以指定缩放的参考点,对应<scale/>标签。
RotateAnimation:旋转渐变,可以指定旋转的参考点,对应<rotate/>标签。
AnimationSet:组合渐变,支持组合多种渐变效果,对应<set/>标签。
补间动画的效果同样可以使用XML语言来定义,这些动画模板文件通常会被放在Android项目的res/anim/目录下。
下面是具体实现源码:
MainActivity.java封装实现的方法:
- package com.example.lesson19_tween;
- import com.example.lesson19_tween.R;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.View;
- import android.view.animation.Animation;
- import android.view.animation.AnimationUtils;
- import android.view.animation.ScaleAnimation;
- import android.view.animation.TranslateAnimation;
- import android.widget.ImageView;
- public class MainActivity extends Activity {
- private ImageView imageView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- imageView = (ImageView) findViewById(R.id.imageView1);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- // 透明动画
- public void alphaImpl(View v) {
- Animation animation = AnimationUtils.loadAnimation(this,
- R.anim.alpha_demo);
- imageView.startAnimation(animation);
- }
- // 旋转动画
- public void rotateImpl(View v) {
- Animation animation = AnimationUtils.loadAnimation(this,
- R.anim.rotate_demo);
- imageView.startAnimation(animation);
- }
- // 缩放动画
- public void scaleImpl(View v) {
- Animation animation = AnimationUtils.loadAnimation(this,
- R.anim.scale_demo);
- imageView.startAnimation(animation);
- }
- // 移动效果
- public void translateImpl(View v) {
- // XML文件
- Animation animation = AnimationUtils.loadAnimation(this,
- R.anim.translate_demo);
- animation.setRepeatCount(Animation.INFINITE);//循环显示
- imageView.startAnimation(animation);
- /*
- * 第一种 imageView.setAnimation(animation); animation.start();
- */
- // 第二种
- // Java代码
- /*
- * TranslateAnimation translateAnimation = new TranslateAnimation(0,
- * 200, 0, 0); translateAnimation.setDuration(2000);
- * imageView.startAnimation(translateAnimation);
- */
- }
- // 综合实现set_demo.xml中的动画
- public void setAll(View v) {
- Animation animation = AnimationUtils.loadAnimation(this,
- R.anim.set_demo);
- imageView.startAnimation(animation);
- }
- }
alpha_demo.xml
- <alpha xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_decelerate_interpolator"
- android:fromAlpha="1.0"
- android:toAlpha="0.1"
- android:duration="2000"/>
- <!--
- fromAlpha :起始透明度
- toAlpha:结束透明度
- 1.0表示完全不透明
- 0.0表示完全透明
- -->
rotate_demo.xml
- <rotate xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_decelerate_interpolator"
- android:fromDegrees="0"
- android:toDegrees="360"
- android:duration="1000"
- android:repeatCount="1"
- android:repeatMode="reverse"/>
- <!--
- fromDegrees:表示旋转的起始角度
- toDegrees:表示旋转的结束角度
- repeatCount:旋转的次数 默认值是0 代表旋转1次 如果值是repeatCount=4 旋转5次,值为-1或者infinite时,表示补间动画永不停止
- repeatMode 设置重复的模式。默认是restart。当repeatCount的值大于0或者为infinite时才有效。
- repeatCount=-1 或者infinite 循环了
- 还可以设成reverse,表示偶数次显示动画时会做与动画文件定义的方向相反的方向动行。
- -->
scale_demo.xml
- <scale xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_interpolator"
- android:fromXScale="0.2"
- android:toXScale="1.5"
- android:fromYScale="0.2"
- android:toYScale="1.5"
- android:pivotX="50%"
- android:pivotY="50%"
- android:duration="2000"/>
- <!--
- fromXScale:表示沿着x轴缩放的起始比例
- toXScale:表示沿着x轴缩放的结束比例
- fromYScale:表示沿着y轴缩放的起始比例
- toYScale:表示沿着y轴缩放的结束比例
- 图片中心点:
- android:pivotX="50%"
- android:pivotY="50%"
- -->
translate_demo.xml
- <translate xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/accelerate_decelerate_interpolator"
- android:fromXDelta="0"
- android:toXDelta="320"
- android:fromYDelta="0"
- android:toYDelta="0"
- android:duration="2000"/>
- <!--
- android:interpolator 动画的渲染器
- 1、accelerate_interpolator(动画加速器) 使动画在开始的时候 最慢,然后逐渐加速
- 2、decelerate_interpolator(动画减速器)使动画在开始的时候 最快,然后逐渐减速
- 3、accelerate_decelerate_interpolator(动画加速减速器)
- 中间位置分层: 使动画在开始的时候 最慢,然后逐渐加速
- 使动画在开始的时候 最快,然后逐渐减速 结束的位置最慢
- fromXDelta 动画起始位置的横坐标
- toXDelta 动画起结束位置的横坐标
- fromYDelta 动画起始位置的纵坐标
- toYDelta 动画结束位置的纵坐标
- duration 动画的持续时间
- -->
set_demo.xml
- <set xmlns:android="http://schemas.android.com/apk/res/android"
- android:interpolator="@android:anim/decelerate_interpolator"
- android:shareInterpolator="true" >
- <scale
- android:duration="2000"
- android:fromXScale="0.2"
- android:fromYScale="0.2"
- android:pivotX="50%"
- android:pivotY="50%"
- android:toXScale="1.5"
- android:toYScale="1.5" />
- <rotate
- android:duration="1000"
- android:fromDegrees="0"
- android:repeatCount="1"
- android:repeatMode="reverse"
- android:toDegrees="360" />
- <translate
- android:duration="2000"
- android:fromXDelta="0"
- android:fromYDelta="0"
- android:toXDelta="320"
- android:toYDelta="0" />
- <alpha
- android:duration="2000"
- android:fromAlpha="1.0"
- android:toAlpha="0.1" />
- </set>
布局文件:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".MainActivity" >
- <Button
- android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
- android:layout_alignParentTop="true"
- android:layout_marginLeft="23dp"
- android:layout_marginTop="15dp"
- android:onClick="translateImpl"
- android:text="@string/text_translate" />
- <Button
- android:id="@+id/button2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignBottom="@+id/button1"
- android:layout_marginLeft="21dp"
- android:onClick="rotateImpl"
- android:layout_toRightOf="@+id/imageView1"
- android:text="@string/text_rotate" />
- <Button
- android:id="@+id/button3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignRight="@+id/button1"
- android:layout_below="@+id/button1"
- android:layout_marginTop="32dp"
- android:onClick="scaleImpl"
- android:text="@string/text_scale" />
- <Button
- android:id="@+id/button4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignBaseline="@+id/button3"
- android:layout_alignBottom="@+id/button3"
- android:layout_alignLeft="@+id/button2"
- android:onClick="alphaImpl"
- android:text="@string/text_alpha" />
- <Button
- android:id="@+id/button5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/button3"
- android:layout_centerHorizontal="true"
- android:onClick="setAll"
- android:text="@string/text_set" />
- <ImageView
- android:id="@+id/imageView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/button5"
- android:layout_marginTop="48dp"
- android:layout_toRightOf="@+id/button3"
- android:src="@drawable/ic_launcher" />
- </RelativeLayout>
在实际项目中,我们经常使用补间动画,原因是补间动画使用起来比较方便,功能也比逐帧动画强大不少,而且还可以很方便地进行动画叠加,实现更加复杂的效果。实际上,set_demo.xml中的<set/>标签对应的就是AnimationSet类,即“动画集合”的概念,支持加入多种动画效果,如渐变动画(alpha)、大小动画(scale),线性动画(translate)等。另外,在Android系统中,所有与动画相关的类都归类在android.view.animation包之下,大家可以参考SDK文档进行进一步学习。
至此,我们已经初步了解了如何在Android系统中使用各种动画效果,包括逐帧动画和补间动画。显而易见的是,在Android平台之上,开发者们可以很方便地使用各种动画效果来为应用产品增色。
-
顶
- 3
-
踩
- 0
我的同类文章
- •sqlserver 和Oracle中 order by(排序)的区别2014-03-24
- •easyui中的分页实现(支持MySQL,SQLServer,Oracle)2014-02-21
- •多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合2014-02-10
- •jquery easyui 授权树递归实现(部分Java代码)2014-01-10
- •jqueryeasyui递归实现用户组树2014-01-09
- •分页查询发电量评估纵向历史对比数据(项目保留)2014-03-18
- •功能组管理-添加移除功能(两种实现方式)2014-02-20
- •项目中废弃的form表单普通提交2014-01-13
- •jquery easyui 授权树普通实现(部分Java代码)2014-01-10
- •Spring Mvc 模式中js报错出现"NetworkError: 400 Bad Request "2014-01-09
-
猜你在找
- Android开发精品课程【Java核心知识】
- Android底层技术:Java层系统服务(Android Service)
- Android必备的Java基础知识(二)
- Android必备的Java基础知识
- ArcGIS for JavaScript
核心技术类目
- 博客专栏
Java经典面试精选 文章:5篇
阅读:10913spring入门 文章:18篇
阅读:37693
- 文章分类
- java(125)
- java基础复习(10)
- 译 java(1)
- XML(10)
- javaweb(64)
- Android开发(32)
- IT前沿软文(7)
- JSP技术(26)
- 杂文(10)
- hibernate(15)
- struts2(15)
- javascript(12)
- jQuery(16)
- Oracle入门(11)
- 面试(21)
- win 8(0)
- windows phone(1)
- spring(25)
- 杂七乱八(6)
- 心情(3)
- 大数据(7)
- 商业智能(4)
- Oracel BIEE(2)
- informatica PowerCenter(1)
- springMVC(9)
- sql server(6)
- 阅读排行
- java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.37\bin\tcnative-1.dll: Can't load AMD 64(22526)
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合(14378)
- Android开发(26)--补间动画(Tween)的实现(11316)
- Android开发(16)-TextView显示表情图像和文字(9963)
- Android开发(21)--有关Spinner控件的使用说明(9397)
- jsp课程(7)---jsp+servlet+javabean 实现的简单网上购物车(8044)
- Android开发(15)-TextView显示丰富的文本(7371)
- Android开发(20)--RadioGroup的使用(6909)
- 什么是冯诺依曼结构计算机?(6781)
- Android开发(30)--AutoCompleteTextView和MultiAutoCompleteTextView自动提示输入内容(6508)
- 评论排行
- 解决在IE浏览器中点击登录出现打开或保存json文件的提示(13)
- jsp课程(7)---jsp+servlet+javabean 实现的简单网上购物车(10)
- java经典面试题(2)(8)
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合(8)
- Android开发(17)-通过安卓API的Tabs3实现仿优酷tabhost效果(7)
- sql server详细安装过程(6)
- Android开发(26)--补间动画(Tween)的实现(6)
- spring入门(2)---第一个spring案例(5)
- VMware Workstation(虚拟机软件) V10.0 简体中文版可以安装了(4)
- csdn小感(4)
- 推荐文章
- 最新评论
- jsp课程(7)---jsp+servlet+javabean 实现的简单网上购物车
yo_c:楼主能否把web.xml贴出来,多谢啦
- java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.37\bin\tcnative-1.dll: Can't load AMD 64
qq_25859403:666666666
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
kore:nginx服务器ip:100 linux应用程序服务器ip:101 linux访问客户端ip:102...
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
kore:应用程序服务器ip:192.168.0.101 linux访问客户端ip:192.168.0.102...
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
kore:nginx服务器ip:192.168.0.100 linux
- java.lang.UnsatisfiedLinkError: D:\Tomcat\apache-tomcat-7.0.37\bin\tcnative-1.dll: Can't load AMD 64
STEVENKE789:怒赞!
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
sgx425021234:@u010177725:你要是在公网环境就会取到公网环境的ip
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
sgx425021234:@u010177725:你要是在公网环境就会取到公网环境的ip
- 解决在IE浏览器中点击登录出现打开或保存json文件的提示
sgx425021234:@yuan121099:不提示下载还不能登录吗?那你是程序写的有问题了。
- 解决在IE浏览器中点击登录出现打开或保存json文件的提示
yuan121099:没有解决问题啊 是提示不下载了 但是直接打开json文件 不登录网页啊
5楼 ylqhust 2015-11-09 14:56发表 [回复]-
-
简单清除,好
4楼 炒饭加蛋 2014-12-23 10:39发表 [回复]-
-
楼主你好,我最近要做小游戏,然后需要一个左右缓慢摇摆的动画,我用的是scale_demo.xml。发现动画摇摆的很快,怎么样才能摆动的慢一些。或者用别的什么方法好?
3楼 炒饭加蛋 2014-12-23 10:39发表 [回复]-
-
楼主你好,我最近要做小游戏,然后需要一个左右缓慢摇摆的动画,我用的是scale_demo.xml。发现动画摇摆的很快,怎么样才能摆动的慢一些。或者用别的什么方法好?
2楼 wsxzz_1998 2014-01-03 12:40发表 [回复]-
-
这个的确是源代码了,呵呵
1楼 xty19 2013-07-15 22:00发表 [回复]-
-
如果可以附上源码更好了
Re: sgx425021234 2013-07-16 09:39发表 [回复]-
-
回复xty19:这个已经就是源码了。。