zoukankan      html  css  js  c++  java
  • FrameLayout的使用

    今天在学习实现墨迹天气那样的拖动效果时,看到用的是重写FrameLayout。翻了翻书,突然想明白,为什么用FrameLayout.
    在FrameLayout中,用我看的书中的话说是,空间永远用不完。
    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#897753"
        >
        <ImageView
            android:id="@+id/image1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:visibility="invisible"
            android:src="@drawable/sky"/>
        <ImageView
            android:id="@+id/image2"
            android:visibility="invisible"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/cloud"/>
        <ImageView
            android:id="@+id/image3"
            android:visibility="invisible"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/sun"/>

    </FrameLayout>

    其中,image1、image2、image3都是在同一块空间的。可以说它们是重叠着的,界面显示的是最近用的那一个。
    在我的代码中把它们都先不可见。
    在整体代码中实现的是点一下屏幕就换一张图片。

    另外,我个人感觉,实现拖动效果的关键原理就是framelayout使得几部分空间的重叠。设置只有一部分可见。当拖动时,设置其他部分移动。

    发现下载附近要扣e币,我把代码也贴上,图片可以换成自己喜欢的~
    FramLayoutTestActivity.java

    import java.util.ArrayList;
    import java.util.List;

    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.animation.Animation;
    import android.widget.ImageView;

    public class FramLayoutTestActivity extends Activity {
        private   String TAG = "FramLayoutTestActivity";
        private ImageView image1;
        private ImageView image2;
        private ImageView image3;
        private List<ImageView> list;

        private int count=0;


            /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            image1=(ImageView)findViewById(R.id.image1);
            image2=(ImageView)findViewById(R.id.image2);
            image3=(ImageView)findViewById(R.id.image3);
            list=new ArrayList<ImageView>();
            list.add(image1);
            list.add(image2);
            list.add(image3);
        }

            @Override
            public boolean onTouchEvent(MotionEvent event) {
                    // TODO Auto-generated method stub
                    if(event.getAction()==MotionEvent.ACTION_DOWN)
                    {
                            Log.i(TAG,"move---");
                            showImage();
                    }
                   
                    return super.onTouchEvent(event);
            }
            private void showImage()
            {
                    image1.setVisibility(View.VISIBLE);
                    count=count%3;
                    for(ImageView i:list)
                    {
                            i.setVisibility(View.INVISIBLE);
                    }
                    list.get(count).setVisibility(View.VISIBLE);
                    count++;
            }

    }
    main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#897753"
        >
        <ImageView
            android:id="@+id/image1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:visibility="invisible"
            android:src="@drawable/sky"/>
        <ImageView
            android:id="@+id/image2"
            android:visibility="invisible"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/cloud"/>
        <ImageView
            android:id="@+id/image3"
            android:visibility="invisible"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:src="@drawable/sun"/>

    </FrameLayout>

  • 相关阅读:
    day14_oracle数据库备份
    day13_存储过程小记
    day13_先沃联盟定时任务
    day13_自动抽取数据——监控存储过程
    [笔记]《HTTP权威指南》- 实体和编码
    [笔记]《白帽子讲Web安全》- Web框架安全
    [笔记]《Vue移动开发实战技巧》- Vue-router使用
    WPF与Win32互操作
    [翻译]HTML5
    学习资料收藏
  • 原文地址:https://www.cnblogs.com/tianguook/p/2716893.html
Copyright © 2011-2022 走看看