请问要若出上图带有图片的单选弹出框,大概要怎么做,比较急,在线等
解决方案 »
- 简析xml是 执行不了parse方法
- 【Android很个性的列表】怎么实现的?有图。。。
- 求一小Demo 安卓的 邮箱或者链接都可以,顶者有分
- Android 如何让图片自适应WebView大小?请高手指点
- 平移动画效果的实现!!!!
- CIM 基于apache mina即时通讯SDK发布,【有图有真相】
- 三国塔防游戏完整代码交流&分享
- android项目中调用unity项目。
- android 中如何activity如何关闭一个开启自启动的service
- 一个看似简单的问题
- 我在android.com上搜到一些博客,为什么打不开呢?是不是需要翻墙啊?
- [转载20111005]完美版Android系统源代码新下载地址
/**
* Method name: dealWallPaper<BR>
* Method description:处理墙纸 <BR>
*
*/
private void dealWallPaper() {
ImageView imageView03 = (ImageView) this
.findViewById(R.id.ss_01_03_img03);
imageView03.setOnClickListener(new OnClickListener() { public void onClick(View v) {
// show dialog
Context context = v.getContext();
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ListView listView = (ListView) mInflater.inflate(R.layout.listview, null);
// 获得所有的图片
ArrayList<PathName> list = getWallPapers();
// 初始显示5张墙纸
ArrayList<PathName> tempList = new ArrayList<PathName>();
for(int i =0;i< list.size() && i< 5;i++){
tempList.add(list.get(i));
}
// 墙纸显示的适配器
WallPaperAdapter adapter = new WallPaperAdapter(context, tempList);
listView.setAdapter(adapter);
// 异步加载墙纸
showPapers(adapter, list, scene.getWallpaper());
new AlertDialog.Builder(context).setTitle(R.string.ss0103_wallpaper_detail)
.setView(listView)
.setPositiveButton(R.string.common_ok, new WallPaperListener(adapter))
.setNegativeButton(R.string.common_cancel, new WallPaperListener(adapter))
.show();
} });
}
/**
* Method name: getWallPapers<BR>
* Method description: 获得所有的墙纸<BR>
*
* @return
*/
private ArrayList<PathName> getWallPapers(){
String status = Environment.getExternalStorageState();
ArrayList<PathName> list=null;
list=SceneUtil.getResources(null, this, MediaStore.Images.Media.INTERNAL_CONTENT_URI,
MediaStore.Images.Media.DATA + " like ?", "%wallpaper%");
if (status.equals(Environment.MEDIA_MOUNTED)) {
list = SceneUtil.getResources(list, this,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,null);
// list = SceneUtil.getResources(list, this,
// MediaStore.Images.Media.INTERNAL_CONTENT_URI,
// MediaStore.Images.Media.DATA + " like ?", "/system/customize/resource/htc_wallpaper%");
// MediaStore.Images.Media.DATA + " like ?", "/system/media/hw_image/wallpaper%");
list=SceneUtil.getResources(list, this, MediaStore.Images.Media.INTERNAL_CONTENT_URI, null, null);
}
return list;
} /**
* Method name: showPapers<BR>
* Method description: 异步加载墙纸<BR>
*
* @param adapter
* @param wallpaper
*/
private void showPapers(WallPaperAdapter adapter,ArrayList<PathName> list, String wallpaper){
ImageLoadTask task = new ImageLoadTask(list, adapter, 5);
task.execute(wallpaper);
}
package com.jftt.smart.activity.adapter;import java.util.ArrayList;import android.content.Context;
import android.graphics.BitmapFactory;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;import com.jftt.smart.R;
import com.jftt.smart.pojo.PathName;
import com.jftt.smart.util.SceneUtil;public class WallPaperAdapter extends BaseAdapter {
private LayoutInflater inflater;
private ArrayList<PathName> items;
public WallPaperAdapter(Context context, ArrayList<PathName> list){
this.inflater = LayoutInflater.from(context);
items = new ArrayList<PathName>();
if(list != null){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 16;
for(PathName bean : list){
bean.image = SceneUtil.decodeBitmap(bean.path, options);
items.add(bean);
}
}
}
public void clear() {
items.clear();
notifyDataSetChanged();
}
public void add(PathName bean) {
items.add(bean);
}
public int getCount() {
// TODO Auto-generated method stub
return items.size();
} public PathName getItem(int position) {
// TODO Auto-generated method stub
return items.get(position);
} public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public boolean isEnabled(int position) {
return false;
} public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_001, parent, false);
holder = new ViewHolder();
holder.imageView = (ImageView) convertView.findViewById(R.id.li001_img001);
holder.textView = (TextView) convertView.findViewById(R.id.li001_tv001);
holder.radioBtn = (RadioButton) convertView.findViewById(R.id.li001_rb001);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
PathName bean = items.get(position);
holder.imageView.setImageBitmap(bean.image);
holder.textView.setText(bean.name);
holder.radioBtn.setChecked(bean.checked);
holder.radioBtn.setOnClickListener(new SingleChoiceListener(position));
return convertView;
}
private class SingleChoiceListener implements OnClickListener {
private int position;
public SingleChoiceListener(int position) {
this.position = position;
} public void onClick(View arg0) {
items.get(position).checked = true;
for (int i = 0; i < items.size(); i++) {
if (i != position) {
items.get(i).checked = false;
}
}
WallPaperAdapter.this.notifyDataSetChanged();
}
}
}class ViewHolder {
public TextView textView;
public ImageView imageView;
public RadioButton radioBtn;
}