如何在android Listview中显示单个项目?
我需要在列表视图中显示图像列表,因为我使用CustomAdapter在列表视图中完成了图像加载过程,这里的问题是我只需要显示一个图像,即可见计数必须只有一个。我需要避免显示2个图像。请找到附件供您参考。(我必须使用listview)我的代码是 MainActivity.Java:如何在android Listview中显示单个项目?,android,android-listview,Android,Android Listview,我需要在列表视图中显示图像列表,因为我使用CustomAdapter在列表视图中完成了图像加载过程,这里的问题是我只需要显示一个图像,即可见计数必须只有一个。我需要避免显示2个图像。请找到附件供您参考。(我必须使用listview)我的代码是 MainActivity.Java: public class MainActivity extends Activity { ListView mList; String[] imageURL = { "http
public class MainActivity extends Activity {
ListView mList;
String[] imageURL = {
"http://ptsdperspectives.org/wp-content/uploads/2013/07/sleepingbaby.jpg",
"http://images2.fanpop.com/image/photos/14300000/Sweet-Angels-sweety-babies-14394647-1600-1200.jpg",
"http://1.bp.blogspot.com/-QDe-qthaKz0/UAWZ6aakdoI/AAAAAAAAFK4/2zlaIu1r20Q/s1600/baby.jpg",
"http://images4.fanpop.com/image/photos/17400000/Sweet-angel-sweety-babies-17465667-600-399.jpg",
"http://media.npr.org/assets/img/2013/05/02/istock-11437508-baby-hat_custom-83708739a42b84de8f35d7a57ee868fce921d619-s6-c30.jpg",
"http://my.fakingnews.firstpost.com/files/2013/09/Baby.jpg",
"http://i.telegraph.co.uk/multimedia/archive/02165/swaddle-baby_2165340b.jpg" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mList = (ListView) findViewById(R.id.image_list_view);
ArrayList<String> mArrayList = new ArrayList<String>();
for (String s : imageURL) {
mArrayList.add(s);
}
CustomImageAdapter mAdapter = new CustomImageAdapter(MainActivity.this,
mArrayList);
mList.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
// mList.setOnScrollListener(new OnScrollListener() {
//
// @Override
// public void onScrollStateChanged(AbsListView view, int scrollState) {
// // TODO Auto-generated method stub
// Log.e("onScrollStateChanged -scrollState", scrollState + "");
// }
//
// @Override
// public void onScroll(AbsListView view, int firstVisibleItem,
// int visibleItemCount, int totalItemCount) {
// Log.e("onScroll -firstVisibleIteml", firstVisibleItem + "");
// Log.e("onScroll -visibleItemCount", visibleItemCount + "");
// Log.e("onScroll -totalItemCount", totalItemCount + "");
// // TODO Auto-generated method stub
// }
// });
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
公共类MainActivity扩展活动{
ListView-mList;
字符串[]图像URL={
"http://ptsdperspectives.org/wp-content/uploads/2013/07/sleepingbaby.jpg",
"http://images2.fanpop.com/image/photos/14300000/Sweet-Angels-sweety-babies-14394647-1600-1200.jpg",
"http://1.bp.blogspot.com/-QDe-qthaKz0/UAWZ6aakdoI/AAAAAAAAFK4/2zlaIu1r20Q/s1600/baby.jpg",
"http://images4.fanpop.com/image/photos/17400000/Sweet-angel-sweety-babies-17465667-600-399.jpg",
"http://media.npr.org/assets/img/2013/05/02/istock-11437508-baby-hat_custom-83708739a42b84de8f35d7a57ee868fce921d619-s6-c30.jpg",
"http://my.fakingnews.firstpost.com/files/2013/09/Baby.jpg",
"http://i.telegraph.co.uk/multimedia/archive/02165/swaddle-baby_2165340b.jpg" };
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mList=(ListView)findViewById(R.id.image\u列表\u视图);
ArrayList mArrayList=新建ArrayList();
for(字符串s:imageURL){
结婚名单。添加(s);
}
CustomImageAdapter mAdapter=新的CustomImageAdapter(MainActivity.this,
结婚名单);
mList.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
//mslist.setOnScrollListener(新的OnScrollListener(){
//
//@覆盖
//公共无效onScrollStateChanged(AbsListView视图,int scrollState){
////TODO自动生成的方法存根
//Log.e(“onScrollStateChanged-scrollState”,scrollState+”);
// }
//
//@覆盖
//public void onScroll(AbsListView视图,int firstVisibleItem,
//int visibleItemCount,int totalItemCount){
//Log.e(“onScroll-firstVisibleIteml”,firstVisibleItem+”);
//Log.e(“onScroll-visibleItemCount”,visibleItemCount+”);
//Log.e(“onScroll-totalItemCount”,totalItemCount+”);
////TODO自动生成的方法存根
// }
// });
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
CustomAdapter.Java
public class CustomImageAdapter extends BaseAdapter {
private Activity activity;
private static LayoutInflater inflater = null;
protected ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
ArrayList<String> url = new ArrayList<String>();
@SuppressWarnings("deprecation")
public CustomImageAdapter(Activity a, ArrayList<String> url2) {
activity = a;
url = url2;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader.init(ImageLoaderConfiguration.createDefault(activity));
options = new DisplayImageOptions.Builder().resetViewBeforeLoading()
.cacheOnDisc().imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new FadeInBitmapDisplayer(100)).build();
}
public int getCount() {
return url.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView u_name;
public ImageView icon;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.list_items, null);
holder = new ViewHolder();
holder.icon = (ImageView) vi.findViewById(R.id.images_bg);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
holder.icon.setTag(url.get(position));
imageLoader.displayImage(url.get(position), holder.icon);
return vi;
}
}
公共类CustomImageAdapter扩展了BaseAdapter{
私人活动;
专用静态充气机=空;
受保护的ImageLoader ImageLoader=ImageLoader.getInstance();
显示图像选项;
ArrayList url=新的ArrayList();
@抑制警告(“弃用”)
公共CustomImageAdapter(活动a,ArrayList url2){
活动=a;
url=url2;
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
init(ImageLoaderConfiguration.createDefault(活动));
选项=新的DisplayImageOptions.Builder().resetViewBeforeLoading()
.cacheOnDisc().imageScaleType(imageScaleType.IN\u SAMPLE\u INT)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(新的FadeInBitmapDisplayer(100)).build();
}
public int getCount(){
返回url.size();
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共静态类视图持有者{
公共文本视图u_名称;
公共图像视图图标;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视图vi=转换视图;
视窗座;
if(convertView==null){
vi=充气机充气(R.layout.list_项目,空);
holder=新的ViewHolder();
holder.icon=(ImageView)vi.findViewById(R.id.images\u bg);
vi.setTag(支架);
}否则
holder=(ViewHolder)vi.getTag();
holder.icon.setTag(url.get(position));
imageLoader.displayImage(url.get(位置)、holder.icon);
返回vi;
}
}
为多个对象的列表创建了一个列表视图。一次只显示一个项目?尝试使用ViewPager。这里有一个很棒的教程:
我希望这会有所帮助。可能会,但如果您使用ViewPager,它将是更可靠的解决方案 请遵循以下代码:
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.Window;
import android.widget.*;
public class DemoPhotoAlbumActivity extends FragmentActivity implements AdapterView.OnItemSelectedListener, ViewPager.OnPageChangeListener {
private ViewPager viewPager;
ImageButton home,file,spanner,info;
// private Gallery gallery;
protected Integer[] mImageIds = {
R.drawable.screen_02,
R.drawable.screen_03,
R.drawable.screen_04,
R.drawable.screen_05,
R.drawable.screen_06,
};
// protected Integer[] mImageIdsTab = {
// R.drawable.tab1,
// R.drawable.tab2,
// R.drawable.tab3,
// R.drawable.tab4,
// R.drawable.tab5,
// R.drawable.tab6,
// };
private Handler handler;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.image_gallery);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
viewPager = (ViewPager) findViewById(R.id.view_pager);
// home= (ImageButton) findViewById(R.id.home_icon);
// file= (ImageButton) findViewById(R.id.folder_icon);
// spanner=(ImageButton) findViewById(R.id.spanner_icon);
// info=(ImageButton) findViewById(R.id.info_icon);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
viewPager.setOnPageChangeListener(this);
/*gallery = (Gallery) findViewById(R.id.gallery);
// set gallery to left side
MarginLayoutParams mlp = (MarginLayoutParams) gallery.getLayoutParams();
mlp.setMargins(-(metrics.widthPixels / 2 + (142/2)), mlp.topMargin,
mlp.rightMargin, mlp.bottomMargin);
gallery.setSelection(1);
gallery.setAdapter(new ImageAdapter());
gallery.setOnItemSelectedListener(this);
*/
handler = new Handler();
}
// gallery item selected
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
updateUI(i);
}
// view pager item selected
public void onPageSelected(int i) {
updateUI(i);
}
private void updateUI(final int i) {
viewPager.setCurrentItem(i);
}
public void onNothingSelected(AdapterView<?> adapterView) { }
public void onPageScrolled(int i, float v, int i1) { }
public void onPageScrollStateChanged(int i) { }
public class ImageAdapter extends BaseAdapter {
public int getCount() {
return mImageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView = new ImageView(DemoPhotoAlbumActivity.this);
imageView.setImageResource(mImageIds[position]);
imageView.setLayoutParams(new Gallery.LayoutParams(150, 100));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
}
public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return mImageIds.length;
}
@SuppressLint("ValidFragment")
@Override
public Fragment getItem(final int position) {
return new Fragment() {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ImageView imageView = new ImageView(DemoPhotoAlbumActivity.this);
//imageView.setImageResource(mImageIds[position]);
imageView.setBackgroundResource(mImageIds[position]);
return imageView;
}
};
}
}
}
导入android.annotation.SuppressLint;
导入android.os.Bundle;
导入android.os.Handler;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentActivity;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.view.ViewPager;
导入android.util.DisplayMetrics;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup;
导入android.view.ViewGroup.MarginLayoutParams;
导入android.view.Window;
导入android.widget.*;
公共类DemoPhotoAlbumActivity扩展FragmentActivity实现AdapterView.OnItemSelectedListener、ViewPager.OnPageChangeListener{
私人视页机视页机;
图像按钮主页、文件、扳手、信息;
//私人画廊;
受保护的整数[]图像ID={
R.drawable.screen_02,
R.drawable.screen_03,
R.drawable.screen_04,
R.drawable.screen_05,
R.drawable.screen_06,
};
//受保护的Inte
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_height="fill_parent"
android:layout_width="fill_parent"
>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
</FrameLayout>