horizontalscrollview+textview简单版

/Hor/res/layout/activity_main.xml  布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

<HorizontalScrollView
    android:id="@+id/hor"
    android:layout_width="match_parent"
    android:layout_height="50dp"

    >
    <LinearLayout
        android:id="@+id/lin"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ></LinearLayout>

</HorizontalScrollView>

<android.support.v4.view.ViewPager
    android:id="@+id/viewp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" >
</android.support.v4.view.ViewPager>

</LinearLayout>

/Hor/res/layout/f1.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   <TextView
       android:id="@+id/t"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="sdsss"
       />

</LinearLayout>

com.bawei.hor.MainActivity  主页

package com.bawei.hor;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.HorizontalScrollView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;

public class MainActivity extends FragmentActivity {
   private String[] name=new String[]{"1","2","3","4","5","6","7"};
    private List<Fragment> list;
    private List<TextView> t_list;
    private HorizontalScrollView horizontalScrollView;
    private int width;
    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       horizontalScrollView = (HorizontalScrollView) findViewById(R.id.hor);
       LinearLayout linearLayout = (LinearLayout) findViewById(R.id.lin);
       final ViewPager viewPager= (ViewPager) findViewById(R.id.viewp);
        //获取屏幕宽度
      width = getWindowManager().getDefaultDisplay().getWidth();
       //加载viewpager页面
      steData();
       //viewpager适配
      FragmentManager fm = getSupportFragmentManager();
      viewPager.setAdapter(new MyFragment(fm,list));
      //viewpager监听
      viewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub
            //判断滑到那页
            getpage(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

        }
    });
      //最上面导航
      t_list = new ArrayList<TextView>();
      for(int i=0;i<name.length;i++){
          //每个textview的宽度
          LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(width/3,LayoutParams.WRAP_CONTENT);

          TextView textView=new TextView(this);
          //距离上下左右
          textView.setPadding(20, 20, 20, 20);
          //赋值
          textView.setText(name[i]);
          //添加集合
          t_list.add(textView);
          //绑定
          textView.setTag(i);
          //将textview放到布局里
          linearLayout.addView(textView, i,params);
          //textview 监听  点哪个滑到那页
          textView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                int m = (Integer) v.getTag();
                viewPager.setCurrentItem(m);
            }
        });
      }
    }
    //viewpager监听里的
    private void getpage(int arg0) {
        // TODO Auto-generated method stub
        //当前显示textview页
         TextView textView1 = t_list.get(arg0);
        for (int i = 0; i < t_list.size(); i++) {
            //将当前显示的textview放到中间
            TextView text=t_list.get(arg0);
            int k = text.getMeasuredWidth();
            int l = text.getLeft();
            int s = k / 2 + l - width / 2;
            horizontalScrollView.smoothScrollTo(s, 0);
            //得到所有textview
            TextView t = t_list.get(i);
            //给当前显示页面的textview页变色
            if (!t.equals(textView1)) {

                t.setTextColor(Color.BLACK);
            } else {
                t.setTextColor(Color.RED);

            }

        }

    }
   //new page页
    private void steData() {
        list = new ArrayList<Fragment>();
    for(int i=0;i<name.length;i++){
        //传值第几页
        Fragment1 f1=new Fragment1(name[i]);
        list.add(f1);
    }
    }

}

com.bawei.hor.MyFragment  viewpager适配

package com.bawei.hor;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.view.View;

public class MyFragment extends FragmentPagerAdapter {
    List<Fragment> list;
    public MyFragment(FragmentManager fm, List<Fragment> list) {
        super(fm);
        // TODO Auto-generated constructor stub
 this.list=list;
    }

    @Override
    public Fragment getItem(int arg0) {
        // TODO Auto-generated method stub
        return list.get(arg0);
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

}

com.bawei.hor.Fragment1   fragment页

package com.bawei.hor;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class Fragment1 extends Fragment{
    String name;
public Fragment1(String name) {
        // TODO Auto-generated constructor stub
  this.name=name;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view=inflater.inflate(R.layout.f1, null);
    TextView textView= (TextView) view.findViewById(R.id.t);
    textView.setText(name);
    return view;
}
}

时间: 2024-11-09 01:46:27

horizontalscrollview+textview简单版的相关文章

android HorizontalScrollView的简单使用

记得以前有个Gallery,但是这个以后被Google放弃了,用过的Gallery的人肯定知道不好用,现在更多的是使用ViewPager或者 HorizontalScrollView,今天说下 HorizontalScrollView的简单使用吧,之前项目中都没用到过这个控件,以为是和listview的一样使用,后才才发现HorizontalScrollView没有什么setAdapter()方法,哪怎么绑定一些资源到HorizontalScrollView控件上呢?换个思路,我们可以里面加一个

分享一个近期写的简单版的网页采集器

分享一个近期写的简单版的网页采集器 功能特点: 1.可通过配置,保存采集规则. 2.可通过采集规则,进行数据采集. 3.可分页,分关键字,进行采集. 4.可保存数据至数据库,文本中. ........... 功能还比较简单,喜欢深入的可以继续深入下去,暂时还没有登录的功能,因为登录功能涉及到的范围比较广,待日后慢慢研究后再开发. 我先上个图让大家一睹为快吧: 首先看看页面,我们要采集这个网站的文章 接下来,首先是查找分页,获得分页里面的文章链接,接着查找内容页需要采集的字段,生成规则,进行采集.

Java实现简单版SVM

最近的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,因为没有用到拉格朗日,对偶,核函数等等.而是用最简单的梯度下降法求解.其中的数学原理我参考了http://blog.csdn.net/lifeitengup/article/details/10951655,文中是用matlab实现的svm. 源代码和数据集下载:https://github.com/linger2012/simpleSvm 其中数据集来自于libsvm,我找了其中

MFC抓取网页代码简单版。

最近又在网上找了一些有关MFC抓取网页代码的文章看,发现有个比较简单的代码,和大家分享下. CInternetSession session(NULL, 0); CHttpFile* htmlFile = NULL; CString strLine, strHtml; CString url = _T("http://www.tqyb.com.cn/data/gzWeather/gz_weatherForecastInDays.js?"); TCHAR sRecv[1024]; UIN

luogu P3808 【模板】AC自动机(简单版)

二次联通门 : luogu P3808 [模板]AC自动机(简单版) /* luogu P3808 [模板]AC自动机(简单版) 手速越来越快了 10分钟一个AC自动机 一遍过编译 + 一边AC 感觉不错 我也就做做板子题了.. */ #include <iostream> #include <cstring> #include <cstdio> #include <queue> #define Max 1000009 void read (int &

简单版猜拳游戏

界面很简单 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84

汇编 输入输出字符串(最简单版)

data segment max_len db 10 real_len db ? buf_str db 10 dup(0) CRLF DB 0AH,0DH,"$"; data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax xor ax,ax mov dx,offset max_len;输入 mov ah,10 int 21h mov bx,offset buf_str;去掉输入的最后一个回车字

JavaMail简单版实验测试

前言: 最近由于实现web商城的自动发送邮件功能的需求,故涉猎的邮箱协议的内部原理.现将简单版的Java Mail实例做个代码展示,并附上其中可能出现的bug贴出,方便感兴趣的读者进行测试! 1.载入相关jar包 客户端传输邮件需要用的jar包:activation.jar和mail.jar (下载:https://github.com/SeaSky0606/share) 2.JavaMail代码实现 1 package com.seasky.mail; 2 3 import java.util

SqlHelper 简单版

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; namespace AddressBook { class SqlHelper { /// <summary> /// 连接数据库的字符串 /// </summary> private static string co