‘壹’ android自定义露一手,轻松实现View 3D 翻转效果
这个3D翻转效果的核心其实就是 Rotate3DAnimation 这个自定义的Animation类。
我们这里主要是通过对 android.graphics.Camera 的操作来实现3D的变化,Camera的坐标系为三维左手坐标系,因此我们可以通过操作它来实现一些3D的效果。
接下来我对各段代码进行详细说明。
下面这段代码是为了防止当图像旋转到90度的时候,图像的侧面刚好朝着我们导致看起来过大的问题,因此我们需要将图像沿着Z轴移动一下,就相当于一辆车从你身后往前开你会感觉车越来越小一个道理。
下面这段代码是实现了图像旋转。
下面这段代码是为了将原点移动到图像的中心点。
如果不将图像移动到中心点则图像会沿着图像的左边旋转如下:
这里还有一点要注意的是,我们需要将旋转后展示的页面(效果图的反面)提前先反转,这样在旋转后展示反面的时候就不会出现展示镜像的问题了,这里我通过继承FrameLayout并在 dispatchDraw 增加如下逻辑来实现的。
Rotate3DLayout 内必需包含 DefaultLayout (默认展示的页面)和 ReverseLayout (翻转后展示的页面),然后以在 DefaultLayout 和 ReverseLayout 中进行自己的布局即可。
通过 rotate3D 方法即可实现翻转。
https://gitee.com/itfitness/rotate3d-layout
在这里就还分享一份由大佬亲自收录整理的 Android学习PDF+架构视频+面试文档+源码笔记 , 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
当然,你也可以拿去查漏补缺,提升自身的竞争力。
真心希望可以帮助到大家,Android路漫漫,共勉!
如果你有需要的话,只需 私信我【进阶】即可获取
‘贰’ Android零基础入门第56节:翻转视图ViewFlipper打造引导页和轮播图
本期内容开始学习ViewAnimator的另一个子类,即ViewFlipper组件的使用。ViewFlipper继承于ViewAnimator,能够通过调用addView(View v)方法添加多个组件。一旦添加多个组件,ViewFlipper就可通过动画实现这些组件之间的切换效果。
与AdapterViewFlipper组件类似,ViewFlipper和AdapterViewFlipper都可以控制组件间的动画效果,但它们的使用方式不同。ViewFlipper需要开发者直接添加多个View,而AdapterViewFlipper则通过传入一个Adapter,由Adapter提供多个View。因此,ViewFlipper可以与AdapterViewFlipper共享相同的XML属性。
以下是ViewFlipper组件的一些常用方法:
- setInAnimation:设置View进入屏幕时使用的动画。
- setOutAnimation:设置View退出屏幕时使用的动画。
- showNext:显示ViewFlipper中的下一个View。
- showPrevious:显示ViewFlipper的上一个View。
- setFlipInterval:设置View之间切换的时间间隔。
- setFlipping:使用设置的时间间隔开始切换所有的View,切换会循环进行。
- stopFlipping:停止View切换。
接下来,通过一个示例程序学习ViewFlipper的使用。在WidgetSample工程的advancedviewsample模块中,新建viewflipper_layout.xml布局文件,添加三个ImageView,实现ViewFlipper的界面。在Activity代码中,通过调用ViewFlipper的showPrevious()、showNext()等方法控制ViewFlipper显示上一个或下一个组件。同时,通过setInAnimation()、setOutAnimation()设置动画效果。在ViewFlipperActivity.java文件中加载布局文件,实现上述功能。程序运行后,点击按钮时可以看到图片切换效果。点击自动播放按钮,ViewFlipper自动轮播图片。通过静态导入ViewFlipper组件,实际开发中可通过addView动态添加组件。结合手势操作,可实现引导页面,或自动播放实现图片轮播。
至此,ViewAnimator系列组件学习完毕,下期将探讨Picker系列组件。如有疑问,欢迎留言讨论,或加入Android零基础入门技术讨论微信群共同成长。文章版权为微信公众号分享达人秀所有,转载需获得作者授权。
‘叁’ android 界面中,点击一张图片,怎样使得界面上这张图片切换为另一张图片。
即使楼主没有用layout的xml文件。但还是要声明实例化一个View去展示画布,以及在Activity的setContentView(view)方法中传入。 这样,楼主是肯定可以得到这个View的对象的。
方法一:直接添加OnclickListener
view.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// 在这里切换另一张图片
}
});
方法二:自定义一个view.继承android.view.View.并复写View的onTouchEvent()方法。
@Override
public boolean onTouchEvent(MotionEvent event)
{
//获取拖动事件的发生位置
float x = event.getX();
float y = event.getY();
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
}
invalidate();// 申请重绘
return true;
}
@Override
public void onDraw(Canvas canvas)
{
//.....你要绘制的另一张图片
canvas.drawPath(path, paint);
}
‘肆’ 如何从android的view界面退到主菜单界面
一直按返回键,直到提示退出,然后选择退出。或者直接按手机上的主菜单键,就是那个像小房子一样的键,但这样子程序是隐藏了并没有真正退出。到主菜单后想完全退出程序可以在屏幕最上方向下拉出一个通知栏,将里面提示正在运行的程序按X结束即可