仿微信的开门效果

有人已经发过了,我掐头去尾精简了一下

[img]http://dl.iteye.com/upload/attachment/0068/2656/a3552474-ad69-3d9b-aa58-e9a5eaeb0902.png[/img]

[img]http://dl.iteye.com/upload/attachment/0068/2658/e088d156-b388-364d-80d6-746617587345.png[/img]
这种效果跟图和布局有很大关系,并不难。
先看布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/whatsnew_bg"
android:gravity="center_horizontal|bottom"
android:visibility="visible"
>
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始我的性生活"
android:textSize="18sp"
android:textColor="#FFFFFFFF"
android:background="@drawable/button_bg"
android:layout_marginBottom="20dip"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/animLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
>
<LinearLayout
android:id="@+id/leftLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/whatsnew_left"
android:layout_weight="1"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/whatsnew_left_m"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/rightLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/whatsnew_right_m"
/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/whatsnew_right"
android:layout_weight="1"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>


在看代码:

package com.dl.app;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;
import android.widget.Button;
import android.widget.LinearLayout;

public class TestOpenDoorActivity extends Activity {
private Context context;
private Button btn_start;

private LinearLayout layout;
private LinearLayout animLayout;
private LinearLayout leftLayout;
private LinearLayout rightLayout;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.context=this;
initViews();

}

private void initViews(){
btn_start=(Button)findViewById(R.id.btn_start);
btn_start.setOnClickListener(onClickListener);

layout = (LinearLayout) findViewById(R.id.layout);
animLayout = (LinearLayout) findViewById(R.id.animLayout);
leftLayout = (LinearLayout) findViewById(R.id.leftLayout);
rightLayout = (LinearLayout) findViewById(R.id.rightLayout);

}

View.OnClickListener onClickListener=new View.OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_start:
doOpenDoor();
break;

default:
break;
}
}

};

private void doOpenDoor(){

layout.setVisibility(View.GONE);
animLayout.setVisibility(View.VISIBLE);
Animation leftOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_left);
Animation rightOutAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.translate_right);

leftLayout.setAnimation(leftOutAnimation);
rightLayout.setAnimation(rightOutAnimation);
leftOutAnimation.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
leftLayout.setVisibility(View.GONE);
rightLayout.setVisibility(View.GONE);
Intent intent = new Intent(context,OtherActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.zoom_out_enter, R.anim.zoom_out_exit);
}
});

}
}


其他见附件:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值