HorizontalScrollView滑动
2016-06-27 08:39
274 查看
package com.bwie.demo;
import com.bwie.demo.view.MyHor;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
String title[] = { "冬冬", "冰冰", "陪伴", "信任", "傻逼", "王八", "犊子", "爱爱",
"默默", "好好", "人人", "嘿嘿", "滴滴", "完美", };
int dra[] = { R.drawable.a1, R.drawable.a6, R.drawable.a2, R.drawable.a4,
R.drawable.a5, R.drawable.a3, R.drawable.a7, R.drawable.a8,
R.drawable.a9, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher,R.drawable.ic_launcher};
private MyHor myHor;
private ViewPager buttonviewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化
myHor = (MyHor) findViewById(R.id.Myviewpager);
buttonviewpager = (ViewPager) findViewById(R.id.buttonviewpager);
myHor.setviewpager(buttonviewpager);
// 设置titler的方法
myHor.addTitles(title);
// 设置buttonviewager和titler所对应
buttonviewpager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dra.length;
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(dra[position]);
container.addView(imageView);
return imageView;
}
});
}
}
···································································································
package com.bwie.demo.view;
import java.util.ArrayList;
import android.content.Context;
import android.graphics.Color;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bwie.demo.R;
public class MyHor extends HorizontalScrollView implements OnClickListener {
private LinearLayout linearLayout;
private String[] titles;
ArrayList<View> list=new ArrayList<View>();
private ViewPager viewPager;
public MyHor(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
intsert();
}
public MyHor(Context context, AttributeSet attrs) {
this(context, attrs, 0);
// TODO Auto-generated constructor stub
}
public MyHor(Context context) {
this(context, null);
// TODO Auto-generated constructor stub
}
// new 布局
private void intsert() {
linearLayout = new LinearLayout(getContext());
this.addView(linearLayout);
}
//设置 跟主界面的 传值
public void setviewpager(ViewPager viewPager){
this.viewPager=viewPager;
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
setComitme(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
public void addTitles(String[] titles) {
this.titles = titles;
list.clear();
for (int i = 0; i < titles.length; i++) {
View view = View.inflate(getContext(), R.layout.titler_item, null);
list.add(view);
TextView tv_item = (TextView) view.findViewById(R.id.tv_itme);
TextView tv_line = (TextView) view.findViewById(R.id.tv_line);
tv_item.setText(titles[i]);
if (i == 0) {
tv_item.setTextColor(Color.RED);
tv_line.setVisibility(view.VISIBLE);
} else {
tv_item.setTextColor(Color.BLACK);
tv_line.setVisibility(View.GONE);
}
view.setId(i);
view.setOnClickListener(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
linearLayout.addView(view, params);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setComitme(v.getId());
}
private void setComitme(int position) {
int width = linearLayout.getChildAt(position).getWidth();
this.scrollTo(width*position, 0);
for (int i = 0; i < titles.length; i++) {
View view = list.get(i);
TextView tv_titler= (TextView) view.findViewById(R.id.tv_itme);
TextView tv_line= (TextView) view.findViewById(R.id.tv_line);
if (position == i) {
viewPager.setCurrentItem(i);
tv_titler.setTextColor(Color.RED);
tv_line.setVisibility(view.VISIBLE);
}else {
tv_titler.setTextColor(Color.BLACK);
tv_line.setVisibility(View.GONE);
}
}
}
}
import com.bwie.demo.view.MyHor;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
String title[] = { "冬冬", "冰冰", "陪伴", "信任", "傻逼", "王八", "犊子", "爱爱",
"默默", "好好", "人人", "嘿嘿", "滴滴", "完美", };
int dra[] = { R.drawable.a1, R.drawable.a6, R.drawable.a2, R.drawable.a4,
R.drawable.a5, R.drawable.a3, R.drawable.a7, R.drawable.a8,
R.drawable.a9, R.drawable.ic_launcher, R.drawable.ic_launcher, R.drawable.ic_launcher,
R.drawable.ic_launcher,R.drawable.ic_launcher};
private MyHor myHor;
private ViewPager buttonviewpager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化
myHor = (MyHor) findViewById(R.id.Myviewpager);
buttonviewpager = (ViewPager) findViewById(R.id.buttonviewpager);
myHor.setviewpager(buttonviewpager);
// 设置titler的方法
myHor.addTitles(title);
// 设置buttonviewager和titler所对应
buttonviewpager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return dra.length;
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(dra[position]);
container.addView(imageView);
return imageView;
}
});
}
}
···································································································
package com.bwie.demo.view;
import java.util.ArrayList;
import android.content.Context;
import android.graphics.Color;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.bwie.demo.R;
public class MyHor extends HorizontalScrollView implements OnClickListener {
private LinearLayout linearLayout;
private String[] titles;
ArrayList<View> list=new ArrayList<View>();
private ViewPager viewPager;
public MyHor(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
intsert();
}
public MyHor(Context context, AttributeSet attrs) {
this(context, attrs, 0);
// TODO Auto-generated constructor stub
}
public MyHor(Context context) {
this(context, null);
// TODO Auto-generated constructor stub
}
// new 布局
private void intsert() {
linearLayout = new LinearLayout(getContext());
this.addView(linearLayout);
}
//设置 跟主界面的 传值
public void setviewpager(ViewPager viewPager){
this.viewPager=viewPager;
viewPager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
setComitme(arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}
public void addTitles(String[] titles) {
this.titles = titles;
list.clear();
for (int i = 0; i < titles.length; i++) {
View view = View.inflate(getContext(), R.layout.titler_item, null);
list.add(view);
TextView tv_item = (TextView) view.findViewById(R.id.tv_itme);
TextView tv_line = (TextView) view.findViewById(R.id.tv_line);
tv_item.setText(titles[i]);
if (i == 0) {
tv_item.setTextColor(Color.RED);
tv_line.setVisibility(view.VISIBLE);
} else {
tv_item.setTextColor(Color.BLACK);
tv_line.setVisibility(View.GONE);
}
view.setId(i);
view.setOnClickListener(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
linearLayout.addView(view, params);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setComitme(v.getId());
}
private void setComitme(int position) {
int width = linearLayout.getChildAt(position).getWidth();
this.scrollTo(width*position, 0);
for (int i = 0; i < titles.length; i++) {
View view = list.get(i);
TextView tv_titler= (TextView) view.findViewById(R.id.tv_itme);
TextView tv_line= (TextView) view.findViewById(R.id.tv_line);
if (position == i) {
viewPager.setCurrentItem(i);
tv_titler.setTextColor(Color.RED);
tv_line.setVisibility(view.VISIBLE);
}else {
tv_titler.setTextColor(Color.BLACK);
tv_line.setVisibility(View.GONE);
}
}
}
}
相关文章推荐
- Android App开发中ViewPager组件的入门使用教程
- 使用ViewPager实现高仿launcher左右拖动效果
- Android App中用Handler实现ViewPager页面的自动切换
- Android应用中使用ViewPager实现类似QQ的界面切换效果
- Android中ViewPager组件的基本用法及实现图片切换的示例
- 灵活使用Android中ActionBar和ViewPager切换页面
- Android实现千变万化的ViewPager切换动画
- Android中viewPager使用指南
- Android 使用 ViewPager循环广告位的实现
- Android中ViewPager实现滑动指示条及与Fragment的配合
- 详解Android App中ViewPager使用PagerAdapter的方法
- Android viewpager中动态添加view并实现伪无限循环的方法
- Android应用中使用ViewPager和ViewPager指示器来制作Tab标签
- Android ViewPager制作新手导航页(动态加载)
- 详解Android App中创建ViewPager组件的方法
- Android App中ViewPager与Fragment结合的一些问题解决
- 实现轮转广告带底部指示的自定义ViewPager控件
- 自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果
- 实例讲解Android中ViewPager组件的一些进阶使用技巧
- Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果