Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 540|回复: 0

[实例教程]Android 利用FrameLayout连接一组view

[复制链接]

该用户从未签到

发表于 2011-10-22 13:17:20 | 显示全部楼层 |阅读模式
   该类声明的变量如下:

java代码: private int mGalleryWidth = 0;

private boolean mIsTouched = false;

private boolean mIsDragging = false;

private float mCurrentOffset = 0.0f;

private long mScrollTimestamp = 0;

private int mFlingDirection = 0; 7

private int mCurrentPosition = 0;

private int mCurrentViewNumber = 0;

private Context mContext;

private Adapter mAdapter;

private FlingGalleryView[] mViews;

private FlingGalleryAnimation mAnimation;

private GestureDetector mGestureDetector;

private Interpolator mDecelerateInterpolater;
其中主要变量有 mCurrentPosition:当前索引。
                             mCurrentViewNumber:当前view的索引。
                             mViews 用来存放一组滑动的view。
                             mAnimation 动画动作。

        类中还封装了类似跳转到下一个view和上一个view的常用切换方法,以及一些常用的布局方法。

        在activity中可以这样使用:

java代码: @Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mGallery = new FlingGallery(this);

//mGallery.setPaddingWidth(5);

mGallery.setAdapter(mBabyListAdapter);

mGallery.setIsGalleryCircular(true);

LinearLayout layout = new LinearLayout(getApplicationContext());

layout = (LinearLayout) PublicFunctionAndUnit.getMainView(

GalleryTest.this, layout, mGallery);

layout.setBackgroundResource(R.drawable.main_bg);

setContentView(layout);

}
在adapter中把要显示的views放入其中,代码如下:

java代码: BaseAdapter mBabyListAdapter = new BaseAdapter() {

@Override

public int getCount() {

return 7; }

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

// GalleryViewItem item = new GalleryViewItem(GalleryTest.this,

// position);

LinearLayout item = getLinearLayout(GalleryTest.this, position);

return item;

}

};

private int[] itemViewIds = new int[] {

R.layout.item1, R.layout.item2,

R.layout.item3, R.layout.item4,

R.layout.item5, R.layout.item6,

R.layout.item7

};

private LinearLayout getLinearLayout(Context context, int position) {

LinearLayout layout = new LinearLayout(context);

LayoutInflater factory = LayoutInflater.from(context);

View item = factory.inflate(itemViewIds[position], null);

layout.addView(item, new LinearLayout.LayoutParams(

LinearLayout.LayoutParams.FILL_PARENT,

LinearLayout.LayoutParams.FILL_PARENT));

return layout;

}
在使用过程中,发现该类,只有跳转到上一个和下一个view 的方法,不能指定跳转到某个view,仔细观察代码后,这个方法可以使用它所给的nextd等实现,代码如下:

java代码:public void moveToViewbyId(int id)          {  
int num=id-mCurrentPosition;  
if(num!=0)  
{  
if(num>0)  
{  
for(int i=0;i<num;i++)  
{  
moveNext();  
}  
}  
else
{  
for(int i=0;i<(0-num);i++)  
{  
movePrevious();  
}  
}  
}  
                    
}  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-19 06:56 , Processed in 0.410300 second(s), 46 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表