- 浏览: 1223283 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
一个Layout从中心放大和缩小的例子,直接上代码:
1.ScaleDialog.java文件
2. ScaleAnimationHelper.java的辅助类
3. DisplayNextView.java动画结束的监听类
4. Constant.java标识ID常量的类
5.first.xml文件
6.second.xml文件
1.ScaleDialog.java文件
package cn.com; import android.app.Activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; public class ScaleDialog extends Activity implements OnClickListener { RelativeLayout layout_parent; Button scale_btn; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.first); scale_btn = (Button) findViewById(R.id.scale_btn); scale_btn.setOnClickListener(this); layout_parent = (RelativeLayout) findViewById(R.id.layout_parent); } @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.scale_btn: displayPage(); v.setEnabled(false); break; case R.id.dismiss_btn: dismissPage(); break; } } View layout; ImageView jobShadow; public void displayPage() { LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); layout = inflater.inflate(R.layout.second, null); layout.setId(Constant.KEY_LAYOUT_ID); jobShadow = (ImageView) layout.findViewById(R.id.jobShadow); Drawable ico = getResources().getDrawable(R.drawable.dbg); jobShadow.setBackgroundDrawable(ico); ico.mutate().setAlpha(200); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); layout_parent.addView(layout, layoutParams); findDialogView(); // 显示layout进行缩放动画效果 ScaleAnimationHelper scaleHelper = new ScaleAnimationHelper(this, Constant.KEY_FIRSTPAGE); scaleHelper.ScaleOutAnimation(layout); } public void removeLayout() { layout_parent.removeView(layout_parent .findViewById(Constant.KEY_LAYOUT_ID)); } Button dismiss_btn; public void findDialogView() { dismiss_btn = (Button) findViewById(R.id.dismiss_btn); dismiss_btn.setOnClickListener(this); } public void dismissPage() { ScaleAnimationHelper scaleHelper = new ScaleAnimationHelper(this, Constant.KEY_SECONDPAGE); scaleHelper.ScaleInAnimation(layout); scale_btn.setEnabled(true); } }
2. ScaleAnimationHelper.java的辅助类
package cn.com; import android.content.Context; import android.view.View; import android.view.animation.AccelerateInterpolator; import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.ScaleAnimation; public class ScaleAnimationHelper { Context con; int order; public ScaleAnimationHelper(Context con, int order) { this.con = con; this.order = order; } DisplayNextView listener; ScaleAnimation myAnimation_Scale; //放大的类,不需要设置监听器 public void ScaleOutAnimation(View view) { myAnimation_Scale = new ScaleAnimation(0.1f, 1.0f, 0.1f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); myAnimation_Scale.setInterpolator(new AccelerateInterpolator()); AnimationSet aa = new AnimationSet(true); aa.addAnimation(myAnimation_Scale); aa.setDuration(500); view.startAnimation(aa); } public void ScaleInAnimation(View view) { listener = new DisplayNextView((ScaleDialog) con, order); myAnimation_Scale = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); myAnimation_Scale.setInterpolator(new AccelerateInterpolator()); //缩小Layout的类,在动画结束需要从父View移除它 myAnimation_Scale.setAnimationListener(listener); AnimationSet aa = new AnimationSet(true); aa.addAnimation(myAnimation_Scale); aa.setDuration(500); view.startAnimation(aa); } }
3. DisplayNextView.java动画结束的监听类
package cn.com; import android.app.Activity; import android.view.animation.Animation; public class DisplayNextView implements Animation.AnimationListener { Object obj; // 动画监听器的构造函数 Activity ac; int order; public DisplayNextView(Activity ac, int order) { this.ac = ac; this.order = order; } public void onAnimationStart(Animation animation) { } public void onAnimationEnd(Animation animation) { doSomethingOnEnd(order); } public void onAnimationRepeat(Animation animation) { } private final class SwapViews implements Runnable { public void run() { switch (order) { case Constant.KEY_SECONDPAGE: ((ScaleDialog) ac).removeLayout(); break; } } } public void doSomethingOnEnd(int _order) { switch (_order) { case Constant.KEY_SECONDPAGE: ((ScaleDialog) ac).layout_parent.post(new SwapViews()); break; } } }
4. Constant.java标识ID常量的类
package cn.com; public class Constant { public final static int KEY_FIRSTPAGE = 1; public final static int KEY_SECONDPAGE = 2; public final static int KEY_LAYOUT_ID = 3; }
5.first.xml文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/layout_parent"> <Button android:text="Scale" android:id="@+id/scale_btn" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button> </RelativeLayout>
6.second.xml文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/jobContent"> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/jobShadow" /> <Button android:layout_width="fill_parent" android:text="Dismiss" android:layout_marginTop="20dp" android:layout_height="wrap_content" android:src="@drawable/jobbg" android:layout_alignParentBottom="true" android:id="@+id/dismiss_btn" /> </RelativeLayout>
发表评论
-
自定义ProgressDialog
2013-04-21 15:58 1174就2段关键代码: <?xml version=&qu ... -
弹性 ScrollView
2013-04-21 15:14 1426CustomerScrollView.java: clas ... -
走马灯效果文字
2012-02-15 16:05 1909走马灯效果的代码,对Tex ... -
API DEMO中3D旋转Layout效果
2011-12-08 13:07 3031LayoutChange.java: package cn ... -
自定义Loading Dialog
2011-09-12 21:00 2726好久没有更新blog,这段时间忙着换工作的事情,现在赶紧的拾掇 ... -
关于旋转动画效果
2011-05-01 17:13 2265好久没有写过blog了,5.1还在继续劳动,:( 刚研究完一个 ... -
Dialog伸缩动画效果
2011-01-13 14:45 6613效果图: ViewScale.java: publ ... -
球体旋转Anim(主要学习点Matrix知识)
2010-12-09 20:20 2120这点Code主要对View重写进行球体旋转: 知识点: 1.重 ... -
Anim中实现Scale和Alpha操作ImageView
2010-12-09 19:51 2875针对这个动画效果的应用,可以了解如下几个知识点: 1.几种动画 ... -
Image的放大,缩小(zoom in,zoom out)
2010-09-15 10:51 3384package com.example; impor ... -
TextView中各种Interpolator的使用
2010-09-09 13:07 3560package net.blogjava.mobile.i ... -
点击button拖动效果
2010-09-09 10:05 1619这个简单的代码段可以熟悉getX(),getRawX()等方法 ... -
API中画arc的简单代码
2010-09-07 14:45 1539package com.test; import a ... -
文本抖动效果
2010-09-05 21:58 2884几句代码如下: Animation animation = ... -
球体运动效果
2010-08-14 22:42 1780看个效果图: 自定义的View: package ... -
关于Drawable动画效果的实现demo(参考ray的博客例子)
2010-08-12 23:09 3126直接上代码把,上面都写了很清楚的注释: package c ... -
一种动画2中不同实现方式(代码和xml)
2010-08-05 21:01 1467AnimTwo.java文件: package cn.co ... -
Activity之间切换的各种效果(遗憾没有3D的效果)
2010-08-05 19:25 7203下面的Demo是我找到的一个觉得用来在程序中进行Activit ... -
Layout之间3D切换效果Demo
2010-07-26 21:58 4129先上个效果图(跟自己Blog中的浏览图片的代码类似,不过是la ... -
ImageView点击透明度变化效果
2010-07-26 20:53 46391. ClickAlphaChange.java文件 pa ...
相关推荐
通过分析和学习这个项目,你可以更好地理解和实践在旧版Android系统中如何利用`Gallery`实现图片点击后渐进式放大缩小的效果。不过,对于新项目,建议使用现代的组件和方法来替换`Gallery`,以获得更好的性能和用户...
它允许我们在指定的坐标轴上放大或缩小视图,从而为用户界面增添动态感和交互性。本篇文章将深入探讨如何使用代码创建并应用ScaleAnimation。 首先,我们需要了解ScaleAnimation的基本构造。ScaleAnimation类有四个...
6. **动画效果**:为了使放大和缩小更平滑,可以使用 Animation API 来添加动画效果。例如,可以创建一个ScaleAnimation对象,设置初始和结束的缩放比例,然后将其应用到ImageView上。 7. **图片缓存**:如果应用...
- **ScaleAnimation**:使用`android.view.animation.ScaleAnimation`类,可以缩放View的宽度和高度。设置动画的开始和结束比例,以及动画的持续时间。 - **ObjectAnimator**:更现代且灵活的选择,可以直接修改...
本项目"Android图片拖动、点击放大效果"提供了一个具体的解决方案,利用Gallery组件和ScaleAnimation类来达到目标。 首先,Gallery组件是Android SDK中的一个特殊视图,它允许用户水平滚动一系列的视图,类似于iOS...
你可以监听`Gallery`的`onItemClick`事件,当用户点击某个图片时,可以使用`ZoomAnimation`或`ScaleAnimation`来实现放大效果。以下是一个简单的动画示例: ```java gallery.setOnItemClickListener(new ...
在Android开发中,图片的放大和缩小是一个常见的需求,特别是在用户界面设计和图像处理中。Android提供了多种方式来实现图片的缩放操作,这通常涉及到Bitmap对象和ImageView组件的使用。下面将详细介绍Android图片...
Tween动画和ScaleAnimation是Android视图动画系统中的两个重要概念,它们帮助开发者实现丰富的视觉效果。在这个名为"Tween_android.rar_ScaleAnimation_android"的压缩包中,可能包含了一个示例项目,用于演示如何在...
这个项目主要关注两个关键特性:一是允许用户通过拖拽来改变元素的位置,二是实现点击元素时的放大缩小效果,以及多屏幕间的切换功能。这样的设计可以提升应用程序的交互性和视觉吸引力。 首先,我们要理解拖拽操作...
"ListView头图片下拉放大效果"就是一种常见的交互设计,当用户下拉ListView时,头部的图片会逐渐放大,释放时则恢复原状,为用户提供了可视化的反馈。 实现这个效果主要涉及到以下几个关键知识点: 1. **自定义...
- 缩放动画可以使用`ScaleAnimation`,让放大镜在放大和缩小过程中有平滑的过渡。 5. **兼容性** - 考虑到Android设备的多样性,确保放大镜功能在不同版本和设备上都能正常工作是非常重要的。测试并适配各种...
在`getView()`方法中,我们可以通过监听`ImageView`的点击事件来实现选中放大效果。可以使用`ScaleAnimation`来实现缩放动画。以下是一个简单的示例: ```java @Override public View getView(int position, View ...
例如,我们可以创建一个缩放动画,当鼠标悬停在按钮上时,按钮会逐渐放大,离开时则缩小回原始大小。 ```cpp class AnimatedButton : public QPushButton { Q_OBJECT public: AnimatedButton(QWidget *parent = ...
ScaleAnimation允许开发者控制对象在X轴和Y轴上的缩放比例,从而创建放大或缩小的动画效果。下面我们将逐一解释其关键参数: 1. `float fromX`:这个参数定义了动画开始时对象在X轴上的缩放因子。如果值为0.5f,...
ScaleAnimation类是Android提供的一个用于改变视图大小的动画类,它可以控制视图在X轴和Y轴上的缩放比例,从而实现放大或缩小的效果。通过设置动画的持续时间、起始和结束的缩放比例,可以定制出不同的动画效果。 ...
在本项目中,标题"Gallery放大,跳动效果"表明我们将会探讨如何为`Gallery`添加一种更加生动活泼的滑动动画,使用户交互体验更加人性化。`CustomGallery`和`GalleryAni`这两个Java类很可能是实现这种效果的关键。 `...
下面是一个简单的示例,将ImageView的宽度和高度乘以2来实现放大效果: ```java imageView.getLayoutParams().width *= 2; imageView.getLayoutParams().height *= 2; imageView.requestLayout(); ``` 为了提供更...
4. **动画效果**:为了实现放大效果,开发者可能会使用Android的Animation框架,创建一个ScaleAnimation对象,设置初始和结束的缩放比例,然后将其应用到顶布局上。此外,还可能使用ValueAnimator进行更精细的控制,...
总的来说,使用ScaleAnimation实现按钮点击缩放效果是Android UI动态设计的一个基本技巧,它可以增加应用的视觉吸引力和用户体验。掌握这类基础动画技术,对于提升应用的整体质量至关重要。在实际开发中,还可以结合...