新闻分类动态生成:
<?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"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#EE2C2C" android:gravity="center_horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dp" android:layout_marginTop="5dp" android:src="@drawable/small_loadpic_empty_listpage_night" /> </LinearLayout> <RelativeLayout android:id="@+id/category" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginTop="5dp"> <ImageButton android:id="@+id/add" android:layout_width="22dp" android:layout_height="22dp" android:layout_alignParentRight="true" android:background="@drawable/channel_glide" /> <HorizontalScrollView android:id="@+id/navigate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scrollbars="none" android:layout_toLeftOf="@id/add" android:layout_centerVertical="true"> <LinearLayout android:id="@+id/newsCategory" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"/> </HorizontalScrollView> </RelativeLayout> <ListView android:id="@+id/newsList" android:layout_width="fill_parent" android:layout_height="wrap_content" android:dividerHeight="1dp" android:divider="@drawable/div" android:cacheColorHint="@android:color/transparent"> </ListView> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/category_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:typeface="monospace" android:textColor="@color/category_title_color"/>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#FF0000"/> <item android:state_focused="true" android:color="#FF0000"/> <item android:state_selected="true" android:color="#FF0000"/> <item android:state_hovered="true" android:color="#FF0000"/> <item android:color="#000000"/> </selector>
package com.cmge.news; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.Gravity; import android.view.Menu; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.GridView; import android.widget.HorizontalScrollView; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.SimpleAdapter; public class IndexActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.index); // 获取新闻分类 String[] categorys = getResources().getStringArray(R.array.categorys); List<HashMap<String,Object>> list = new ArrayList<HashMap<String,Object>>(); for(int i = 0;i<categorys.length;i++){ HashMap<String,Object> map = new HashMap<String,Object>(); map.put("category_title",categorys[i]); list.add(map); } // 绑定数据 SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.category_title,new String[]{"category_title"},new int[]{R.id.category_title}); GridView view = new GridView(this); view.setColumnWidth(55); view.setNumColumns(GridView.AUTO_FIT); view.setGravity(Gravity.CENTER); view.setSelector(new ColorDrawable(Color.TRANSPARENT)); // 设置相关参数 int width = categorys.length * 55; LayoutParams params = new LayoutParams(width, LayoutParams.WRAP_CONTENT); view.setLayoutParams(params); view.setAdapter(adapter); // 设置View LinearLayout linearLayout = (LinearLayout)findViewById(R.id.newsCategory); linearLayout.addView(view); final HorizontalScrollView horizontalScrollView = (HorizontalScrollView)findViewById(R.id.navigate); // 滑动按钮 绑定事件 ImageButton button = (ImageButton)findViewById(R.id.add); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 滚动 horizontalScrollView.fling(600); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.index, menu); return true; } }