</pre><p></p><p></p><p>1、在Activity对应的xml内</p><p></p><pre name="code" class="html"> <HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<GridView
android:id="@+id/diary_gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit" >
</GridView>
</LinearLayout>
</HorizontalScrollView>
2、对应的list_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/list_diary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="5dp"
android:text="Info"
android:textColor="#FFFFFFFF"
android:textSize="14dp" >
</TextView>
</LinearLayout>
3、在Activity内布置列表
package com.hzdz.hm01;
import java.util.ArrayList;
import java.util.List;
import com.hzdz.mh01.R;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class GaugeDiaryActivity extends Activity {
List<Integer> dayList;
GridView gridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gaugediary);
initView();
setData();
setGridView();
}
private void initView() {
gridView = (GridView) findViewById(R.id.diary_gridview);
}
/** 设置数据 */
private void setData() {
dayList = new ArrayList<Integer>();
dayList.add(1);
dayList.add(2);
dayList.add(3);
dayList.add(4);
dayList.add(5);
dayList.add(6);
dayList.add(7);
dayList.add(8);
dayList.add(9);
dayList.add(10);
dayList.add(11);
dayList.add(12);
dayList.add(13);
dayList.add(14);
dayList.add(15);
dayList.add(16);
dayList.add(17);
dayList.add(18);
dayList.add(19);
dayList.add(20);
dayList.add(21);
dayList.add(22);
dayList.add(23);
dayList.add(24);
dayList.add(25);
dayList.add(26);
dayList.add(27);
dayList.add(28);
dayList.add(29);
dayList.add(30);
dayList.add(31);
}
private void setGridView() {
int size = dayList.size();
int length = 40;
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
float density = dm.density;
int gridviewWidth = (int) (size * (length + 4) * density);
int itemWidth = (int) (length * density);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(gridviewWidth, LinearLayout.LayoutParams.FILL_PARENT);
gridView.setLayoutParams(params); // 设置GirdView布局参数,横向布局的关键
gridView.setColumnWidth(itemWidth); // 设置列表项宽
gridView.setHorizontalSpacing(5); // 设置列表项水平间距
gridView.setStretchMode(GridView.NO_STRETCH);
gridView.setNumColumns(size); // 设置列数量=列表集合数
GridViewAdapter adapter = new GridViewAdapter(getApplicationContext(), dayList);
gridView.setAdapter(adapter);
}
/** GirdView 数据适配器 */
public class GridViewAdapter extends BaseAdapter {
Context context;
List<Integer> list;
public GridViewAdapter(Context _context, List<Integer> _list) {
this.list = _list;
this.context = _context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
convertView = layoutInflater.inflate(R.layout.list_item, null);
TextView tvCode = (TextView) convertView.findViewById(R.id.list_diary);
Integer day = list.get(position);
tvCode.setText(""+day);
return convertView;
}
}
}