源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

基于AnDroid FrameLayout的使用详解

  • 时间:2020-05-21 21:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:基于AnDroid FrameLayout的使用详解
今天在学习实现墨迹天气那样的拖动效果时,看到用的是重写FrameLayout。翻了翻书,突然想明白,为什么用FrameLayout. 在FrameLayout中,用我看的书中的话说是,空间永远用不完。
[u]复制代码[/u] 代码如下:
<?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
[u]复制代码[/u] 代码如下:
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
[u]复制代码[/u] 代码如下:
<?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>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部