基于AnDroid FrameLayout的使用详解

基于AnDroid FrameLayout的使用详解,第1张

概述今天在学习实现墨迹天气那样的拖动效果时,看到用的是重写FrameLayout。翻了翻书,突然想明白,为什么用FrameLayout.在FrameLayout中,用我看的书中的话说是,空间永远用不完。复制代码代码如下:<?xmlversion=\"1 今天在学习实现墨迹天气那样的拖动效果时,看到用的是重写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>

总结

以上是内存溢出为你收集整理的基于AnDroid FrameLayout的使用详解全部内容,希望文章能够帮你解决基于AnDroid FrameLayout的使用详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1141189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存