设为首页 加入收藏

TOP

实现QQ iPad客户端的对话框平滑移动的效果(一)
2014-11-24 11:30:41 来源: 作者: 【 】 浏览:1
Tags:实现 iPad 客户端 对话 平滑 移动 效果

package com.yelbosh.test;


import java.io.IOException;


import com.yelbosh.test.classes.MyButton;


import android.Manifest;
import android.opengl.Visibility;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.text.Layout;
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.support.v4.app.NavUtils;
import android.webkit.*;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;



/**
*
* @author yelbosh
* 2012-7-15
*/
public class MainActivity extends Activity {
private static final boolean LEFT = true;
private static final boolean RIGHT = false;


private View talkdiv;
private Button photo;
private RelativeLayout rl;
//talkdiv上面的title
private TextView titleBar;
//设置talkidv出现的方向
private boolean talkOrentation = LEFT;


private int WINDOW_HEIGHT;
private int WINDOW_WIDTH;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rl = (RelativeLayout)findViewById(R.id.mainlayout);
photo = (Button)findViewById(R.id.myphoto);
talkdiv = getLayoutInflater().inflate(R.layout.talk, rl,false);
rl.addView(talkdiv);
talkdiv.setVisibility(View.INVISIBLE);

titleBar = (TextView)findViewById(R.id.titleBar);

//为titleBar设置监听函数
titleBar.setOnTouchListener(new View.OnTouchListener() {
//记录初始位置
int temp;
int viewLeft;

public boolean onTouch(View arg0, MotionEvent event) {
// TODO Auto-generated method stub
int eventaction = event.getAction();
int x = (int)event.getRawX();



switch (eventaction) {
case MotionEvent.ACTION_DOWN:
temp = (int) event.getRawX();//记录起始x坐标
viewLeft = (int)MainActivity.this.talkdiv.getLeft();
break;
case MotionEvent.ACTION_MOVE:
MainActivity.this.talkdiv.layout(viewLeft+x-temp, 0, viewLeft+x-temp+MainActivity.this.talkdiv.getWidth(), MainActivity.this.talkdiv.getHeight());
MainActivity.this.talkdiv.postInvalidate();
break;
case MotionEvent.ACTION_UP:
//根据滑动的距离进行判断
//滑到右边
if((viewLeft + x-temp) > 0.3*MainActivity.this.WINDOW_WIDTH){


//滑向右边
Animation temani = new TranslateAnimation(MainActivity.this.talkdiv.getLeft(),MainActivity.this.talkdiv.getWidth(),0,0);
temani.setDuration(600);
MainActivity.this.talkdiv.startAnimation(temani);
MainActivity.this.talkdiv.setVisibility(View.INVISIBLE);
//使其居中
MainActivity.this.talkdiv.layout(0, 0,MainActivity.this.talkdiv.getWidth(), MainA

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中的String判断是不是为空 下一篇Android中显示html标签或者带图片

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)