文档章节

实现自定义图片的旋转

火文乐武
 火文乐武
发布于 2016/05/24 20:54
字数 658
阅读 17
收藏 0

day2701                

1、在布局文件中定义布局

2、自定义图片的工具类,用来实现图片的显示与隐藏

3、在主方法中实现功能

代码如下:

主方法:

public class MainActivity extends Activity implements OnClickListener {

	private RelativeLayout rl2, rl3;
	private ImageButton btnHome, btnMenu;

	private boolean rs2 = true;
	private boolean rs3 = true;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initView();
	}

	private void initView() {
		rl2 = (RelativeLayout) findViewById(R.id.rl2);
		rl3 = (RelativeLayout) findViewById(R.id.rl3);

		btnHome = (ImageButton) findViewById(R.id.btnHome);
		btnMenu = (ImageButton) findViewById(R.id.btnmenu);

		btnHome.setOnClickListener(this);
		btnMenu.setOnClickListener(this);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btnHome:
			if (rs2) {
				if (rs3) {
					AnimationUtils.AnimationOut(rl3, 500);
					rs3 = false;
				}
				AnimationUtils.AnimationOut(rl2, 500);
				rs2 = false;
			} else {
				AnimationUtils.AnimationIn(rl2, 500);
				rs2 = true;
			}
			break;
		case R.id.btnmenu:
			if (rs3) {
				AnimationUtils.AnimationOut(rl3, 500);
				rs3 = false;
			} else {
				AnimationUtils.AnimationIn(rl3, 500);
				rs3 = true;
			}

			break;

		default:
			break;
		}
	}
}

控件

<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="com.example.day2701.MainActivity" >

    <RelativeLayout
        android:id="@+id/rl1"
        android:layout_width="80dp"
        android:layout_height="40dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:background="@drawable/level1"
        android:text="@string/hello_world" >

        <ImageButton
            android:id="@+id/btnHome"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerInParent="true"
            android:background="@drawable/icon_home" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl2"
        android:layout_width="160dp"
        android:layout_height="75dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:background="@drawable/level2"
        android:text="@string/hello_world" >

        <ImageButton
            android:id="@+id/btnsearch"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginLeft="5dp"
            android:background="@drawable/icon_search" />

        <ImageButton
            android:id="@+id/btnmenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="1dp"
            android:background="@drawable/icon_menu" />

        <ImageButton
            android:id="@+id/btnmyyouku"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:background="@drawable/icon_myyouku" />
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/rl3"
        android:layout_width="320dp"
        android:layout_height="140dp"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:background="@drawable/level3"
        android:text="@string/hello_world" >

        <ImageButton
            android:id="@+id/btnchan1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginLeft="10dp"
            android:background="@drawable/channel1" />

        <ImageButton
            android:id="@+id/btnchan2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="45dp"
            android:layout_marginLeft="35dp"
            android:background="@drawable/channel2" />

        <ImageButton
            android:id="@+id/btnchan3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="90dp"
            android:layout_marginLeft="70dp"
            android:background="@drawable/channel3" />

        <ImageButton
            android:id="@+id/btnchan4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="5dp"
            android:background="@drawable/channel4" />

        <ImageButton
            android:id="@+id/btnchan5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="90dp"
            android:layout_marginRight="70dp"
            android:background="@drawable/channel5" />

        <ImageButton
            android:id="@+id/btnchan6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="45dp"
            android:layout_marginRight="35dp"
            android:background="@drawable/channel6" />

        <ImageButton
            android:id="@+id/btnchan7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:layout_marginRight="10dp"
            android:background="@drawable/channel7" />
    </RelativeLayout>

</RelativeLayout>

3、工具类

public class AnimationUtils {

	public static void AnimationOut(ViewGroup vg, int offset) {

		int count = vg.getChildCount();

		for (int i = 0; i < count; i++) {
			View v = vg.getChildAt(i);
			v.setEnabled(false);
		}
		RotateAnimation ra = new RotateAnimation(0, 180,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 1);
		ra.setDuration(500);
		ra.setFillAfter(true);
		ra.setStartOffset(500);
		vg.startAnimation(ra);
	}

	public static void AnimationIn(ViewGroup vg, int offset) {
		int count = vg.getChildCount();
		for (int i = 0; i < count; i++) {
			View v = vg.getChildAt(i);
			v.setEnabled(true);
		}
		RotateAnimation ra2 = new RotateAnimation(180, 0,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,1);
		ra2.setDuration(500);
		ra2.setStartOffset(500);
		ra2.setFillAfter(true);
		vg.startAnimation(ra2);
	}

}

 

 

 

© 著作权归作者所有

共有 人打赏支持
火文乐武
粉丝 7
博文 38
码字总数 17183
作品 0
郑州
Android工程师
私信 提问
iOS开发 | 双面view

iu 将一个view绕y轴旋转180度是这样的: 旋转.gif 正面是: 正面 反面是: 反面 有时我们可能需要将背面设置成不同的图片或view,如下: 双面view.gif 这种效果如何实现? 我的思路: 在一个...

无夜之星辰
2017/12/13
0
0
操作图片,一根手指就够了!

之前看到小伙伴使用美图秀秀对自拍的图片各种旋转、缩放、拼接,于是兴起就尝试了一下,与其说是对图片的操作,更不如说是对手势的操作,话不多说,先看看效果图: Display.jpg 导读 手势识别...

小时候De_我
2016/12/01
0
0
如何在Bitmap上输出一张高清大图

这个软件是用JAVA写的,是一个Android程序 我们正在做的是一个图片旋转、剪裁、缩放的程序,这个功能是通过继承ImageView类,重写OnTouchEvent方法来实现的。自定义的View在屏幕上显示的是3...

orimuse
2014/07/19
1K
0
【我的Android进阶之旅】如何自定义一个45度旋转的TextView,实现类似右上角文字角标的效果

版权声明:本文为【欧阳鹏】原创文章,欢迎转载,转载请注明出处! 【http://blog.csdn.net/ouyang_peng】 https://blog.csdn.net/qq446282412/article/details/86255280 一、需求描述 最近,...

欧阳鹏
01/10
0
0
iOS开发之简单画板实现

这几天在学习Quartz2D,学习了一个简单画板的实现,现在把实现过程记录一下。 主要用到的点就是画线,截屏,绘制图片,选择图片,以及保存所有绘制的线。 首先在storyboard上布局好控件,设置...

shenhuniurou
2016/04/06
130
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq安装教程

RabbitMQ有Windows与Linux版本的,这里先写Windows版本的安装。 以前安装软件总是在百度上找某某安装教程,结果能按照教程安装好的软件真的不多。想起先前以为大牛说的一句话,去官网按照官网...

em_aaron
今天
6
0
Android 贝塞尔曲线实践——波浪式运动

一、波浪效果如下 贝塞尔曲线自定义波浪效果的案例很多,同样方法也很简单,大多数和本案例一样使用二次贝塞尔曲线实现,同样还有一种是PathMeasure的方式,这里我们后续补充,先来看贝塞尔曲...

IamOkay
今天
3
0
Nmap之防火墙/IDS逃逸

选项 解释 -f 报文分段 --mtu 指定偏移大小 -D IP欺骗 -sI 原地址欺骗 --source-port 源端口欺骗 --data-length 指定发包长度 --randomize-hosts 目标主机随机排序 --spoof-mac Mac地址欺骗 ...

Frost729
今天
2
0
带你搭一个SpringBoot+SpringData JPA的环境

不知道大家对SpringBoot和Spring Data JPA了解多少,如果你已经学过Spring和Hibernate的话,那么SpringBoot和SpringData JPA可以分分钟上手的。 其实我在学完SpringBoot和SpringData JPA了之...

java菜分享
今天
7
0
Chocolatey 在Window搭建一个开发环境

在看了(利用 Chocolatey 快速在 Windows 下搭建一个开发环境)后,准备从零开始 一、准备工作 1、用管理员权限启动:powershell,执行错误请参考(PowerShell因为在此系统中禁止执行脚本的解...

近在咫尺远在天涯
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部