新闻分类动态生成:
<?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;
}
}