Android 简单炫酷的UI界面 之欢迎界面
来源:互联网 发布:java语言集成开发环境 编辑:程序博客网 时间:2024/04/19 09:48
1.将启动图片splash.png,放置在res->drawable-hdpi文件夹中。
2新建布局文件splash.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainFrame" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ffffff" > <include android:id="@+id/include_main" layout="@layout/activity_main" /> <com.example.testdemo.PullDoorView android:id="@+id/myImage" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#ddd" > <TextView android:id="@+id/tv_hint" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="10dp" android:text="上滑可以进入首页" android:textColor="#ffffffff" android:textSize="18sp" /> </com.example.testdemo.PullDoorView></FrameLayout>
3.新建PullDoorView类,实现RelativeLayout
package com.example.testdemo;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Color;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.util.DisplayMetrics;import android.view.MotionEvent;import android.view.View;import android.view.WindowManager;import android.view.animation.BounceInterpolator;import android.view.animation.Interpolator;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.Scroller;/** * * @author jiang-H * */public class PullDoorView extends RelativeLayout { private Context mcontext; private Scroller scroller; private ImageView imageView; private int CY; private int DY; private int LDY = 0; private int screenWidth = 0; private int screenHeigh = 0; private boolean closeFlag = false; public PullDoorView(Context context) { super(context); mcontext = context; setupView(); } public PullDoorView(Context context, AttributeSet attrs) { super(context, attrs); mcontext = context; setupView(); } @SuppressLint("NewApi") private void setupView() { // 将Interpolator设置成有弹跳效果 Interpolator polator = new BounceInterpolator(); scroller = new Scroller(mcontext, polator); // 获取屏幕分辨率 WindowManager windowManager = (WindowManager) (mcontext .getSystemService(Context.WINDOW_SERVICE)); DisplayMetrics displayMetrics = new DisplayMetrics(); windowManager.getDefaultDisplay().getMetrics(displayMetrics); screenHeigh = displayMetrics.heightPixels; screenWidth = displayMetrics.widthPixels; // 设置成透明背景 this.setBackgroundColor(Color.argb(0, 0, 0, 0)); imageView = new ImageView(mcontext); imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); imageView.setScaleType(ImageView.ScaleType.FIT_XY);// 填充整个屏幕 imageView.setImageResource(R.drawable.splash); // 默认背景 addView(imageView); } // 设置推动门背景 public void setBgImage(int id) { imageView.setImageResource(id); } // 设置推动门背景 public void setBgImage(Drawable drawable) { imageView.setImageDrawable(drawable); } // 设置推动门的动画 public void startBounceAnim(int startY, int dy, int duration) { scroller.startScroll(0, startY, 0, dy, duration); invalidate(); } @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: LDY = (int) event.getY(); return true; case MotionEvent.ACTION_MOVE: CY = (int) event.getY(); DY = CY - LDY; // 上滑有效 if (DY < 0) { scrollTo(0, -DY); } break; case MotionEvent.ACTION_UP: CY = (int) event.getY(); DY = CY - LDY; if (DY < 0) { if (Math.abs(DY) > screenHeigh / 2) { // 向上滑动超过半个屏幕高度时动画消失 startBounceAnim(this.getScrollY(), screenHeigh, 450); closeFlag = true; } else { // 向上滑动未超过半个屏幕高度时开启向下弹动动画 startBounceAnim(this.getScrollY(), -this.getScrollY(), 1000); } } break; } return super.onTouchEvent(event); } @Override public void computeScroll() { if (scroller.computeScrollOffset()) { scrollTo(scroller.getCurrX(), scroller.getCurrY()); // 更新界面 postInvalidate(); } else { if (closeFlag) { this.setVisibility(View.GONE); } } }}
4.在MainActivity里,实现onCreate方法
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_splash); }
这样就完成了上滑界面了,快去试试吧!
0 1
- Android 简单炫酷的UI界面 之欢迎界面
- android Splash简单炫酷UI界面
- Android炫酷的UI界面
- Android最简单的欢迎界面(一)
- Android写一个简单的欢迎界面
- 实现简单的android UI界面
- 实现简单交互式的android UI界面
- Android简单UI界面的XML实现
- Android Studio 简单UI界面
- Android开发学习之路--UI之简单聊天界面
- Android开发学习之路--UI之简单聊天界面
- android开发之欢迎界面
- UI界面的简单应用
- Android UI界面之TableLayout
- Android ui utils-简单实用的Android界面工具 .
- Android ui utils-简单实用的Android界面工具
- Android ui utils-简单实用的Android界面工具
- Android ui utils-简单实用的Android界面工具
- 【Android开发经验】LayoutInflater——80%的Android程序员对它并不了解甚至错误使用
- HDU - 5688 Problem D
- 记录一下Android大神们的博客地址,学习之路漫漫啊
- [ObjectC]Runtime运行时之三:方法与消息
- HDU - 5686 Problem B
- Android 简单炫酷的UI界面 之欢迎界面
- solution Of 1025. PAT Ranking (25)
- 【前序中序求后序/后序中序求前序层次】【模板】
- 大牛教你这样阅读android源码
- RelativeLayout用到的一些重要的属性
- Android 重写系统Crash处理类,保存Crash信息到SD卡
- HDU - 5685 Problem A
- 第二次课总结及作业思考
- 使用MHA发生切换后,将原主库加入集群并切换回最初状态