Android手机屏幕坐标定义

通常在做项目的时候我们会写一些动画,比如activity切换的动画,这个时候常见的办法就是在res目录下新建个anim文件,里面写一些xml动画文件。我们在写这些文件时通常会考虑需求,比如activity是怎样切换的,是从左往右还是从上往下,初次写的时候我们经常搞不清android手机屏屏幕坐标是怎么定义的,原点在哪里,X、Y轴又是怎么定义的,如图

这里写图片描述

竖屏时,左上角就是原点,坐标为(0, 0),以原点往右坐标为正,往下坐标为正值。因此横屏时,你可以看成水平方向就是X轴,上下方向就是Y轴,这跟我们学数学时的坐标轴一样,由此我们可以写出各种切屏动画

文件名:left_in.xml 从左往右推进

<?xml version="1.0"encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="500"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:fromXDelta="-100%"
        android:toXDelta="0%" />
</set>

文件名:right_out.xml 从右往左退出

<pre name="code" class="html"><?xml version="1.0" encoding="utf-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="1000"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:fromXDelta="0%"
        android:toXDelta="100%" />
</set>

其中参数android:duration=”1000”表示整个动画的执行时间为1秒

android:fromXDelta=”-100%”
android:toXDelta=”0%”

沿着X方向的移动,从屏幕的-100%到屏幕的0%

java代码调用在res文件下新建anim文件夹,再新建资源文件选择set
布局文件

<?xml version="1.0" encoding="utf-8"?>
<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="#468921"
    tools:context="com.example.test.animtest.MainActivity">

    <TextView
        android:id="@+id/textview"
        android:text="Hello World!"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>

java代码

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

        TextView textView= (TextView) findViewById(R.id.textview);
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,SecondClass.class);
                startActivity(intent);
                // 第一个参数为新的页面进入时的动画,第二个参数为当前页面退出时的动画
                overridePendingTransition(R.anim.left_in,R.anim.right_out);
            }
        });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值