获取屏幕宽度,将view移出屏幕再移动回来

public class MainActivity extends AppCompatActivity {
   private TextView kuandu;
    float curTranslationX;
    float width;
    float height;
    private Button out;
    private Button in;
   private View view;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        kuandu = (TextView) findViewById(R.id.kuandu);
        out = (Button) findViewById(R.id.out);
        in = (Button) findViewById(R.id.in);
        view =  findViewById(R.id.view);
        out.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goOut();
            }
        });
        in.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                goIn();
            }
        });

        WindowManager manager = this.getWindowManager();
        DisplayMetrics outMetrics = new DisplayMetrics();
        manager.getDefaultDisplay().getMetrics(outMetrics);
        width = outMetrics.widthPixels;
        height = outMetrics.heightPixels;
        kuandu.setText("宽度是:" +width+ ",高度是" + height);

    }

    private void goOut() {
        curTranslationX = view.getTranslationX();
        ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX", curTranslationX, width);
        animator.setDuration(1000);
        animator.start();

    }

    private void goIn() {
        curTranslationX = view.getTranslationX();
        ObjectAnimator animator = ObjectAnimator.ofFloat(view, "translationX", curTranslationX, 0);
        animator.setDuration(1000);
        animator.start();

    }

}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.laoyimou.imagetest.MainActivity">

    <Button
        android:id="@+id/out"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="out" />

    <Button
        android:id="@+id/in"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="in" />

    <TextView
        android:id="@+id/kuandu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <View
        android:id="@+id/view"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="@color/colorPrimary" />

</LinearLayout>

原文地址:https://www.cnblogs.com/laoyimou/p/8274916.html

时间: 2024-10-12 03:23:45

获取屏幕宽度,将view移出屏幕再移动回来的相关文章

Android中dip(dp)与px之间单位转换 dip2px dp转px 无context算法(以及获取获取屏幕宽度和高度)

废话不多说直接上代码: 1.dip2px  dp转px  无context算法 public static int px2dip(int pxValue) { final float scale = Resources.getSystem().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } public static float dip2px(float dipValue) { final float s

获取屏幕宽度、浏览器宽度、网页高度,宽度信息

视图模式innerWidth/innerHeight属性(窗口大小) window.innerHeightwindow.innerWidth window.pageYOffset:Netscape属性,指的是滚动条顶部到网页顶部的距离 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.bod

Android获取屏幕宽度高度

方法一: WindowManager wm = (WindowManager) this .getSystemService(Context.WINDOW_SERVICE); int width = wm.getDefaultDisplay().getWidth(); int height = wm.getDefaultDisplay().getHeight(); 方法二: WindowManager wm1 = this.getWindowManager(); int width1 = wm1

NGUI ScrollView出屏幕再回来坐标混乱解决

主要是子节点没更新.乍一看调用UIPanel的Refresh()会管用,其实不然. 解决方法调用UIPanel的Invalidate让他所有子节点更新. panel.Invalidate(true); NGUI ScrollView出屏幕再回来坐标混乱解决

WPF: ShowDialog() 切换到其他应用窗口后,再切换回来无法让子窗口总在最上方

按说ShowDialog()是模态窗口,应该在主窗口的上方,但是打开其他应用窗口再切换回来的时候,发现子窗口不见了,主窗口又不能操作. 另外子窗口设置成不在任务栏显示,只能通过Alt-Tab来切换到子窗口. 我找了很久,才找到一个解决办法,其实很简单, 就是在子窗口里设置Owner为父窗口. 我是在子窗口的构造函数里写的: this.Owner = Application.Current.MainWindow; 参考链接如下: http://www.telerik.com/community/f

uitableView 选择跳转后 再跳回来 颜色不变 问题

今天遇见过这个问题  以前都没这方面需求所以没有遇见 今天遇见了 网上查了 没有查到 好吧 只能说自己的问题 但是 还好kai哥到 一句话就解决了 ! 就是在- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath中反选回来 如下代码: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(

CABasicAnimation 按home键后台之后,再切回来动画就停止

RemovedOnCompletion 这个属性默觉得 YES,那意味着,在指定的时间段完毕后,动画就自己主动的从层上移除了.这个一般不用. 假如你想要再次用这个动画时,你须要设定这个属性为 NO.这种话,下次你在通过-set 方法设定动画的属 性时,它将再次使用你的动画,而非默认的动画. 假设CABasicAnimation 按home键后台之后,再切回来动画就停止,仅仅要将RemovedOnCompletion属性设为no

Access中出现改变字段“自动编号”类型,不能再改回来!(已解决)

一次把access中的自增字段改成了数值,再改回自增时,提示:在表中输入了数据之后,则不能将任何字段数据类型改为"自动编号"错误,解决方法: 1.先右键表,设计,打开字段设计状态. 2.把你要改的自增字段删除掉. 3.在最后面新增一个字段(与删除的字段同名),设为自动编号即可. Access中出现改变字段"自动编号"类型,不能再改回来!(已解决)

UI第三讲.自定义视图 视图控制器指定自定义view 检测屏幕旋转 处理内存警告 容器视图控制器

一.自定义视图 (自定义label-textField视图) 目的:为了进一步优化登录界面,提高代码的精简程度和复用性,可移植性,从而需要在原有视图控件的基础之上自由组合成自定义视图. 一般自定义的视图会继承于UIView.以下是自定义视图的要点和步骤: 1.创建一个UIView子类 2.在类的初始化方法中添加子视图 3.类的.h文件提供一些接口(方法),便于外界操作子视图. 例子及相应代码: 例题:假设我们使用LTView类代表label-textfield视图.创建一个LTView类继承于U