ListView不能和ScrollView同时使用,因为它已经包含了滚动支持。
还有个Gallery
http://blog.csdn.net/dazlly/article/details/7863923
居然过期了。。。用HorizontalScrollView代替
package com.narumi.android_12_1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.BaseAdapter; import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { //所有图片 int [] drawableIds = { R.drawable.andy,R.drawable.bill,R.drawable.edgar,R.drawable.linus,R.drawable.turing }; int [] msgIds= { R.string.andy,R.string.bill,R.string.edgar,R.string.linus,R.string.turing }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView lv = (ListView)findViewById(R.id.ListView01); BaseAdapter ba = new BaseAdapter() { @Override public View getView(int arg0, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub LinearLayout ll=new LinearLayout(MainActivity.this); ll.setOrientation(LinearLayout.HORIZONTAL); ll.setPadding(5, 5, 5, 5); ImageView ii = new ImageView(MainActivity.this); ii.setImageDrawable(getResources().getDrawable(drawableIds[arg0], getTheme())); ii.setScaleType(ImageView.ScaleType.FIT_XY); ii.setLayoutParams(new HorizontalScrollView.LayoutParams(100,98)); ll.addView(ii); TextView tv=new TextView(MainActivity.this); tv.setText(getResources().getText(msgIds[arg0])); tv.setTextSize(24); tv.setTextColor(MainActivity.this.getResources().getColor(R.color.white)); tv.setPadding(5, 5, 5, 5); tv.setGravity(HorizontalScrollView.FOCUS_LEFT); ll.addView(tv); return ll; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public int getCount() { // TODO Auto-generated method stub return 5; } }; lv.setAdapter(ba); lv.setOnItemSelectedListener( new OnItemSelectedListener(){ @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub TextView tView=(TextView)findViewById(R.id.TextView01); LinearLayout llLayout=(LinearLayout)arg1; TextView tvn=(TextView)llLayout.getChildAt(1); StringBuilder sb=new StringBuilder(); sb.append(getResources().getText(R.string.ys)); sb.append("."); sb.append(tvn.getText()); String stemp=sb.toString(); tView.setText(stemp.split("\n")[0]); } @Override public void onNothingSelected(AdapterView<?> parent) { // TODO Auto-generated method stub } } ); lv.setOnItemClickListener( new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub TextView tView=(TextView)findViewById(R.id.TextView01); LinearLayout llLayout=(LinearLayout)arg1; TextView tvn=(TextView)llLayout.getChildAt(1); StringBuilder sb=new StringBuilder(); sb.append(getResources().getText(R.string.ys)); sb.append("."); sb.append(tvn.getText()); String stemp=sb.toString(); tView.setText(stemp.split("\n")[0]); } } ); } }
自己P了五张图
图灵小朋友真萌 O(∩_∩)O
由于使用了安卓自带控件,布局文件很简单
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/black" android:orientation="vertical" tools:context="com.narumi.android_12_1.MainActivity" > <TextView android:id="@+id/TextView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textSize="24sp" android:textColor="@color/white" android:text="@string/hello" /> <ListView android:id="@+id/ListView01" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/black" android:choiceMode="singleChoice" /> </LinearLayout>
建立color.xml的时候要注意类型是Color List,下一步的时候可以填生成路径,直接把color改成 values
<color name="red">#fd8d8d</color> <color name="green">#9cfda3</color> <color name="blue">#8d9dfd</color> <color name="white">#ffffff</color> <color name="black">#000000</color> <color name="gray">#050505</color>
strings一般原来就有
<string name="hello">您选择了</string> <string name="app_name">ListViewExample</string> <string name="andy">Andy Rubin Android的创造者</string> <string name="bill">Bill Joy Java创造者之一</string> <string name="edgar">Edgr F. Codd 关系数据库之父</string> <string name="linus">Linus Torvalds Linux之父</string> <string name="turing">Turing Alan IT的祖师爷</string> <string name="ys">您选择了</string>
此例的效果也就是点一行会再顶部显示与这行同样的信息,java代码有点多有点乱,貌似已经使得HorizontalScrollView与ListView冲突了,待修改(Gallery有毛线用啊)。