package com.example.administrator.yueguanbaohe;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2017/12/11 0011.
*/
public class Myadapter extends BaseAdapter {
private Context mcontext;
private List<Map<String, String>> data;
super();
mcontext = context;
data=mdata;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
mposition_lv=MainActivity.position_lv;
View view;
Myadapter.ViewHolder holder;
if (convertView == null) {
view = LayoutInflater.from(mcontext).inflate(R.layout.main_lv_item, parent, false);
holder = new Myadapter.ViewHolder();
holder.imageView = (ImageView) view.findViewById(R.id.item_image);
holder.title = (TextView) view.findViewById(R.id.item_tv_head);
holder.tool = (TextView) view.findViewById(R.id.item_tv_tool);
holder.time = (TextView) view.findViewById(R.id.time);
view.setTag(holder);
} else {
view = convertView;
view.setBackgroundColor(Color.TRANSPARENT);
holder = (Myadapter.ViewHolder) view.getTag();
}
holder.imageView.setImageBitmap(BitmapFactory.decodeFile(data.get(position).get("musicId")));
String mUriAlbums = "content://media/external/audio/albums";
String[] projection = new String[]{"album_art"};
int album_id = Integer.valueOf(data.get(position).get("musicId"));
Cursor cur = mcontext.getContentResolver().query(Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)), projection, null, null, null);
String album_art = null;
if (cur.getCount() > 0 && cur.getColumnCount() > 0) {
cur.moveToNext();
album_art = cur.getString(0);
}
cur.close();
holder.imageView.setImageBitmap(BitmapFactory.decodeFile(album_art));
holder.title.setText(data.get(position).get("title"));
holder.tool.setText(data.get(position).get("artist"));
int time = Integer.valueOf(data.get(position).get("time")) / 1000;
holder.time.setText(time / 60 + ":" + time % 60);
if(position==mposition_lv) {view.setBackgroundColor(Color.BLUE);}
else {view.setBackgroundColor(Color.TRANSPARENT);}
return view;
}
class ViewHolder {
ImageView imageView;
TextView title;
TextView tool;
TextView time;
}
}
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
import java.util.Map;
/**
* Created by Administrator on 2017/12/11 0011.
*/
public class Myadapter extends BaseAdapter {
private Context mcontext;
private List<Map<String, String>> data;
private int mposition_lv;
// 这是一个构造器 接收一个上下文参数,和一个数据源。
public Myadapter(Context context,List<Map<String, String>> mdata) {super();
mcontext = context;
data=mdata;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
//主要就是一个简单优化,对convertView的重用,然后调用view的setTag方法。其中一些数据库的操作都不用在意。
public View getView(int position, View convertView, ViewGroup parent) {
mposition_lv=MainActivity.position_lv;
View view;
Myadapter.ViewHolder holder;
if (convertView == null) {
view = LayoutInflater.from(mcontext).inflate(R.layout.main_lv_item, parent, false);
holder = new Myadapter.ViewHolder();
holder.imageView = (ImageView) view.findViewById(R.id.item_image);
holder.title = (TextView) view.findViewById(R.id.item_tv_head);
holder.tool = (TextView) view.findViewById(R.id.item_tv_tool);
holder.time = (TextView) view.findViewById(R.id.time);
view.setTag(holder);
} else {
view = convertView;
view.setBackgroundColor(Color.TRANSPARENT);
holder = (Myadapter.ViewHolder) view.getTag();
}
holder.imageView.setImageBitmap(BitmapFactory.decodeFile(data.get(position).get("musicId")));
String mUriAlbums = "content://media/external/audio/albums";
String[] projection = new String[]{"album_art"};
int album_id = Integer.valueOf(data.get(position).get("musicId"));
Cursor cur = mcontext.getContentResolver().query(Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)), projection, null, null, null);
String album_art = null;
if (cur.getCount() > 0 && cur.getColumnCount() > 0) {
cur.moveToNext();
album_art = cur.getString(0);
}
cur.close();
holder.imageView.setImageBitmap(BitmapFactory.decodeFile(album_art));
holder.title.setText(data.get(position).get("title"));
holder.tool.setText(data.get(position).get("artist"));
int time = Integer.valueOf(data.get(position).get("time")) / 1000;
holder.time.setText(time / 60 + ":" + time % 60);
if(position==mposition_lv) {view.setBackgroundColor(Color.BLUE);}
else {view.setBackgroundColor(Color.TRANSPARENT);}
return view;
}
class ViewHolder {
ImageView imageView;
TextView title;
TextView tool;
TextView time;
}
}
版权声明:本文为lzybilian原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。