android音乐播放器(1)

1、主界面专辑图片采用AsyncTask异步加载,并使用了自定义ListView风格对主界面进行布局

  
  
  
  
  1. /**  
  2.   * 异步加载图片 构造方法传入iamgeView和Position 将下载过的图片临时存入HashMap中  
  3.   * 通过HashMap中的position判断是否需要启动异步任务进行下载 已经下载过的图片则不再进行下载  
  4.   */  
  5.  class LoadAlBumIcon extends AsyncTask<URL, Void, Bitmap> {  
  6.   private ImageView imageView;  
  7.   private int mPosition;  
  8.  
  9.   private LoadAlBumIcon(ImageView imageView, int position) {  
  10.    this.imageView = imageView;  
  11.    this.mPosition = position;  
  12.   }  
  13.  
  14.   @Override  
  15.   protected Bitmap doInBackground(URL... params) {  
  16.    try {  
  17.     // 得到bitmap图片  
  18.     InputStream is = params[0].openStream();  
  19.     Bitmap bitmap = BitmapFactory.decodeStream(is);  
  20.     // 存入HashMap中  
  21.     albumIconCache.put(mPosition, bitmap);  
  22.     return bitmap;  
  23.  
  24.    } catch (MalformedURLException e) {  
  25.     // TODO Auto-generated catch block  
  26.     e.printStackTrace();  
  27.    } catch (IOException e) {  
  28.     e.printStackTrace();  
  29.    }  
  30.    return null;  
  31.   }  
  32.  
  33.   @Override  
  34.   protected void onPostExecute(Bitmap result) {  
  35.    imageView.setImageBitmap(result);  
  36.   }  
  37.  }  
  38.  
  39. // 主界面,自定义ListView  
  40.   final String[] strs = getResources().getStringArray(R.array.separator);  
  41.   final int[] icons = new int[] { R.drawable.no_cd,  
  42.     R.drawable.list_search, R.drawable.list_radio,  
  43.     R.drawable.list_top, R.drawable.no_cd,  
  44.     R.drawable.list_playlist, R.drawable.list_download };  
  45.   mListView = (ListView) findViewById(R.id.listView1);    
  46.   mListView.setAdapter(new BaseAdapter() {  
  47.    //设置全部不可点击  
  48.    @Override  
  49.    public boolean areAllItemsEnabled() {  
  50.     return false;  
  51.    }  
  52.    //设置是否可以点击ListView中的Item  
  53.    @Override  
  54.    public boolean isEnabled(int position) {  
  55.     if ("Browse Jamendo".equals(strs[position])  
  56.       || "My Library".equals(strs[position])) {  
  57.      return false;  
  58.     } else {  
  59.      return true;  
  60.     }  
  61.    }  
  62.      
  63.    @Override  
  64.    public View getView(int position, View convertView, ViewGroup parent) {  
  65.     Log.d("String", strs[position]+String.valueOf(position));  
  66.       
  67.     ViewHolder holder = null;  
  68.     if (convertView == null) {  
  69.      LayoutInflater inflater = LayoutInflater 
  70.        .from(MusicPlayerActivity.this);  
  71.      View layout = null;  
  72.      // 判断是否是分类标题  
  73.      if ("Browse Jamendo".equals(strs[position])  
  74.        || "My Library".equals(strs[position])) {  
  75.       layout = inflater.inflate(R.layout.listtext, null);  
  76.       TextView tv = (TextView) layout;  
  77.       tv.setText(strs[position]);  
  78.      } else {  
  79.       layout = inflater.inflate(R.layout.listitem, null);  
  80.       holder = new ViewHolder();  
  81.       holder.mImage1 = (ImageView) layout  
  82.         .findViewById(R.id.imageView1);  
  83.       holder.mImage1.setImageResource(icons[position]);  
  84.       holder.mText = (TextView) layout  
  85.         .findViewById(R.id.textView1);  
  86.       holder.mText.setText(strs[position]);  
  87.       holder.mImage2 = (ImageView) layout  
  88.         .findViewById(R.id.imageView2);  
  89.  
  90.       layout.setTag(holder);  
  91.      }  
  92.      convertView = layout;  
  93.     } else {  
  94.      holder = (ViewHolder) convertView.getTag();  
  95.     }  
  96.     return convertView;  
  97.    }  
  98.  
  99.    @Override  
  100.    public long getItemId(int position) {  
  101.     // TODO Auto-generated method stub  
  102.     return 0;  
  103.    }  
  104.  
  105.    @Override  
  106.    public Object getItem(int position) {  
  107.     // TODO Auto-generated method stub  
  108.     return null;  
  109.    }  
  110.  
  111.    @Override  
  112.    public int getCount() {  
  113.     // TODO Auto-generated method stub  
  114.     return strs.length;  
  115.    }  
  116.   });  
  117.  

 

 

本文出自 “android” 博客,谢绝转载!

你可能感兴趣的:(android,职场,休闲,音乐播放器主界面)