android Splash简单炫酷UI界面
来源:互联网 发布:淘宝店铺卖 编辑:程序博客网 时间:2024/04/19 15:22
MainActivity代码:
import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Window;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.splash); }}
activity_main.xml代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent"> <TextView android:text="你好" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>
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.zhjy.splashdt.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.zhjy.splashdt.PullDoorView></FrameLayout>
自定义的布局:
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 :huangxianfeng on 2016/10/14. * 上滑Splash界面,滑动不超过一般的时候松手有个回弹效果 */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); } } }}
更多资源源码下载:
不一样的RecyclerView优雅实现复杂列表布局
android自定义视频播放器
MediaPlayer和SurfaceView的结合使用
FloatingActionButton的使用
多层Fragment与ViewPager结合使用
0 0
- android Splash简单炫酷UI界面
- Android 简单炫酷的UI界面 之欢迎界面
- Splash界面简单实现
- android自定义splash界面
- android splash界面实现
- Android Studio 简单UI界面
- Android开发之splash界面
- 如何制作Android Splash界面
- 如何制作Android Splash界面
- 【边做项目边学Android】手机安全卫士02:splash界面ui
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- Android UI常用实例 如何实现欢迎界面(Splash Screen)
- 简单app开发之splash界面
- Android炫酷的UI界面
- 实现简单的android UI界面
- 实现简单交互式的android UI界面
- Android简单UI界面的XML实现
- Android App启动图启动界面(Splash)的简单实现
- linux下rwx权限数字解释
- dubbo
- C语言 -- 计算一个数组中每个元素出现的频率
- Windows证书查看
- Leetcode-102. Binary Tree Level Order Traversal
- android Splash简单炫酷UI界面
- Android Uri外部启动app或者notification启动
- 微信小程序 尺寸单位rpx与px,rem相互转换
- Spring源码分析【8】-分布式环境SpringSecurity保持用户会话
- JSP基础(2)
- 喜
- MySQL DATE_FORMAT()函数
- Kotlin - ==、===和equals
- ABCDE 排列组合