package com.androidapp.viewpager;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Matrix;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class TestViewPagerActivity extends Activity {
ViewPager viewPager;// ViewPager对象
ImageView img_bottom_line;// 跟随图标
TextView text_one;// 标题1
TextView text_two;// 标题2
TextView text_three;// 标题3
int currIndex = 0;// 当前页卡编号
int bmpW;// 图片宽度
int offset;// 动画图片偏移量
View view1;
View view2;
View view3;
List<View> views;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initImageView();
initTextView();
initViewPager();
}
public void initTextView() {
text_one = (TextView) findViewById(R.id.text_one);
text_two = (TextView) findViewById(R.id.text_two);
text_three = (TextView) findViewById(R.id.text_three);
text_one.setOnClickListener(new MyOnClick(0));
text_two.setOnClickListener(new MyOnClick(1));
text_three.setOnClickListener(new MyOnClick(2));
}
public void initImageView() {
img_bottom_line = (ImageView) findViewById(R.id.img_bottom_line);
bmpW = img_bottom_line.getLayoutParams().width;
// BitmapFactory.decodeResource(getResources(), id);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;
System.out.println("------------" + screenW);
offset = (screenW / 3 - bmpW) / 2;
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
img_bottom_line.setImageMatrix(matrix);// 设置动画初始位置
}
public void initViewPager() {
viewPager = (ViewPager) findViewById(R.id.viewPager);
views = new ArrayList<View>();
LayoutInflater inflater = getLayoutInflater();
view1 = inflater.inflate(R.layout.one, null);
view2 = inflater.inflate(R.layout.two, null);
view3 = inflater.inflate(R.layout.three, null);
views.add(view1);
views.add(view2);
views.add(view3);
viewPager.setAdapter(new MyViewPageAdapter(views));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
class MyViewPageAdapter extends PagerAdapter {
private List<View> listViews;
MyViewPageAdapter(List<View> listViews) {
this.listViews = listViews;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(listViews.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(listViews.get(position), 0);
return listViews.get(position);
}
@Override
public int getCount() {
return listViews.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
class MyOnPageChangeListener implements OnPageChangeListener {
int one = offset * 2 + bmpW;// 页卡1-->页卡2 偏移量
int two = offset * 2;// 页卡2-->页卡3 偏移量
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
/**
* 页卡切换监听
*/
@Override
public void onPageSelected(int arg0) {
Animation animation = new TranslateAnimation(one * currIndex, one
* arg0, 0, 0);
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
img_bottom_line.startAnimation(animation);
Toast.makeText(TestViewPagerActivity.this,
"您选择了" + viewPager.getCurrentItem() + "页卡",
Toast.LENGTH_SHORT).show();
}
}
/**
* 表头点击事件
*
* @author GM
*
*/
class MyOnClick implements OnClickListener {
int index = 0;
MyOnClick(int i) {
this.index = i;
}
@Override
public void onClick(View v) {
viewPager.setCurrentItem(index);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
Android应用源码之简单实现 一条线 跟随 viewpager 滚动.zip项目安卓应用源码下载
共33个文件
class:10个
png:8个
xml:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 52 浏览量
2022-03-08
16:18:07
上传
评论
收藏 295KB ZIP 举报
温馨提示
Android应用源码之简单实现 一条线 跟随 viewpager 滚动.zip项目安卓应用源码下载Android应用源码之简单实现 一条线 跟随 viewpager 滚动.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
资源详情
资源评论
资源推荐
收起资源包目录
Android应用源码之简单实现 一条线 跟随 viewpager 滚动.zip (33个子文件)
Android应用源码之简单实现 一条线 跟随 viewpager 滚动
Android应用源码之简单实现 一条线 跟随 viewpager 滚动
TestViewPager
AndroidManifest.xml 750B
res
layout
two.xml 578B
three.xml 580B
main.xml 2KB
one.xml 578B
drawable-ldpi
ic_launcher.png 2KB
drawable-mdpi
ic_launcher.png 3KB
drawable-hdpi
ic_launcher.png 4KB
values
strings.xml 192B
proguard.cfg 1KB
src
com
androidapp
viewpager
TestViewPagerActivity.java 4KB
bin
classes
com
androidapp
viewpager
R.class 573B
TestViewPagerActivity$MyOnPageChangeListener.class 2KB
R$layout.class 495B
R$attr.class 358B
TestViewPagerActivity$MyViewPageAdapter.class 2KB
R$id.class 670B
TestViewPagerActivity$MyOnClick.class 1KB
R$string.class 445B
R$drawable.class 425B
TestViewPagerActivity.class 4KB
TestViewPager.apk 117KB
res
drawable-ldpi
ic_launcher.png 2KB
drawable-mdpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
classes.dex 243KB
resources.ap_ 13KB
.classpath 480B
project.properties 360B
.project 849B
gen
com
androidapp
viewpager
R.java 1KB
152003a2hzkd7qlfqltf8t.png 11KB
152003zhh1zw1dhswp4sh8.png 10KB
共 33 条
- 1
yxkfw
- 粉丝: 82
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0