android中一个关于ScrollView的例子

来源:互联网 发布:socket服务端 java 编辑:程序博客网 时间:2024/06/06 03:50

先给效果图:


关于ScrollView组件了,其实和HorizontalScroolView组件相似,前者是用来显示垂直方向,后者是显示水平方向,当然ScrollView也是只能添加唯一的一个子组件

主activity(MainActivity.java):

package com.tody.scrollviewdemo;import android.os.Bundle;import android.app.Activity;import android.util.DisplayMetrics;import android.view.Gravity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.ScrollView;import android.widget.TextView;import android.widget.Toast;/** * 主界面 * @author tody.yang * */public class MainActivity extends Activity {private int deviceHeight;//屏幕的高度private LinearLayout mLinearLayout;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    /**     * 获取屏幕高度     * @return deviceHeight 屏幕高度     */    private int getDeviceHeight(){    // 获取屏幕分辨率    DisplayMetrics dm = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(dm);    deviceHeight = dm.heightPixels;    return deviceHeight;    }        private void initView(){    mLinearLayout = (LinearLayout) findViewById(R.id.lineLayout);//实例化一个线性布局组件,而这个组件作为ScrollView的唯一子组件    mLinearLayout.removeAllViews();//移除该组件下的所有子组件对象        int[] imageArray = {R.drawable.d0,R.drawable.d1,R.drawable.d2,R.drawable.d3,R.drawable.d4,R.drawable.d5,R.drawable.d6};//实例化一个整型数组用来存放图片资源        for (int i = 0; i < imageArray.length; i++) {//循环的次数和imageArray数组的长度相同LinearLayout itemLayout =  (LinearLayout) LinearLayout.inflate(MainActivity.this, R.layout.scrollview_item, null);//动态实例化一个线性布局itemLayout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, getDeviceHeight()/3));//高度为当前屏幕的1/3itemLayout.setGravity(Gravity.CENTER_HORIZONTAL);//设置水平居中TextView mTextView = (TextView) itemLayout.findViewById(R.id.textView);//实例化scrollview_item布局中的TextView组件ImageView mImageView = (ImageView) itemLayout.findViewById(R.id.imageView);//实例化scrollview_item布局中的ImageView组件final String page = "第"+(i+1)+"张";mTextView.setText(page);//设置显示的文字mImageView.setBackgroundResource(imageArray[i]);//设置显示的图片mLinearLayout.addView(itemLayout);itemLayout.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "点击了"+page, Toast.LENGTH_SHORT).show();}});}        }        @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    }

主界面布局文件(activity_main.xml):

<RelativeLayout 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"    tools:context=".MainActivity" ><ScrollView     android:layout_width="match_parent"    android:layout_height="match_parent"    >    <LinearLayout         android:id="@+id/lineLayout"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="vertical"        >            </LinearLayout></ScrollView></RelativeLayout>

加载子项的布局文件(scrollview_item.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"    tools:context=".MainActivity" ><TextView     android:id="@+id/textView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center_horizontal"    android:text="俊哥"    android:textSize="20sp"    /><ImageView     android:id="@+id/imageView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:background="@drawable/d0"    android:layout_gravity="center_horizontal"    /></LinearLayout>


原创粉丝点击