2011-06-15 34 views
0

私はsdcard画像を読む必要があるアプリケーションを作成しています。 IMAGEフォルダの背景画像を置いて、それを設定する方法は? PragnaAndroid:背景画像

を、これはmimetypes.xmlです: は、より多くの情報が

+0

ゴー内部3531/Android/Mobile/display-Images-stored-sdcard –

+0

http://developer.appcelerator.com/question/106261/backgroundimage-on-a-view-not-working-on-android – Android

+0

よろしくお願いします。 – Android

答えて

0
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.FilenameFilter; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.List; 
import java.util.Vector; 
import java.util.zip.GZIPInputStream; 
import java.util.zip.GZIPOutputStream; 

import com.androidpeople.tab.FindFilesByType.DownloadFileAsync; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.app.ExpandableListActivity; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.content.res.Resources; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.os.Environment; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.widget.ArrayAdapter; 
import android.widget.ExpandableListView; 
import android.widget.ProgressBar; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.ExpandableListView.OnGroupExpandListener; 

public class SongList extends ExpandableListActivity { 
    private RingtoneAdapter expListAdapter; 
    public static SongList self; 

    int myProgress = 0; 
    public static final int DIALOG_DOWNLOAD_PROGRESS = 0; 
    ProgressBar myProgressBar; 
    ProgressDialog mProgressDialog; 
    List<String> items = new ArrayList<String>(); 
    final Context myApp = this; 
    // private static final String DIRECTORY = "/system/media/audio/ringtones/"; 
    private static final String DIRECTORY = "/sdcard/download/"; 

// private MediaPlayer mp = new MediaPlayer(); 
    List<String> Ringtones = new ArrayList<String>(); 
    ArrayAdapter<String> adapter; 
    TextView tv, empty; 
    ExpandableListView exlv1; 
    // ListView lv1; 
    Boolean hasErrors = false; 
    int currentPosition = 0; 
    private static final String LOG_TAG = "TEST"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     self=this; 
     setContentView(R.layout.main); 
     refreshList(); 

    } 
    } 
    public void refreshList() { 

     File ringtones_directory = new File(DIRECTORY); 
     if (!ringtones_directory.exists()) { 
      AlertDialog.Builder ad = new AlertDialog.Builder(SongList.this); 
      ad.setTitle("Directory Not Found"); 
      ad.setMessage("Sorry! The ringtones directory doesn't exist."); 
      ad.setPositiveButton("OK", null); 
      ad.show(); 
      hasErrors = true; 
     } 
     if (!ringtones_directory.canRead()) { 
      AlertDialog.Builder ad = new AlertDialog.Builder(SongList.this); 
      ad.setTitle("Permissions"); 
      ad 
        .setMessage("Sorry! You don't have permission to list the files in that folder"); 
      ad.setPositiveButton("OK", null); 
      ad.show(); 
      hasErrors = true; 
     } else { 
      Ringtones = FindFiles(false); 

      if (Ringtones.size() < 1) { 
       AlertDialog.Builder ad = new AlertDialog.Builder(SongList.this); 
       ad.setTitle("Permissions"); 
       ad.setMessage("Sorry! No ringtones exists in " + DIRECTORY 
         + "."); 
       ad.setPositiveButton("OK", null); 
       ad.show(); 
       Log.e(LOG_TAG, "No ringtones were found."); 
       hasErrors = true; 
      } 
     } 
     try { 
      if (!hasErrors) { 
       ArrayAdapter<String> adapter = new ArrayAdapter<String>(
         SongList.this, android.R.layout.test_list_item, 
         Ringtones); 
       ArrayList<String> GrouppList = new ArrayList<String>(); 
       GrouppList.addAll(Ringtones); 
       ArrayList<ArrayList<Rington>> colors = new ArrayList<ArrayList<Rington>>(); 
       for (int i = 0; i <= Ringtones.size(); i++) { 
        ArrayList<Rington> color = new ArrayList<Rington>(); 
        color = new ArrayList<Rington>(); 
        color.add(new Rington("", "", true)); 
        colors.add(color); 
       } 
       expListAdapter = new RingtoneAdapter(this, GrouppList, colors); 
         exlv1 = (ExpandableListView) findViewById(R.id.expandableListView1); 
          this.exlv1.setAdapter(this.expListAdapter); 

      }    

     } catch (Exception e) {  
      Log.i(LOG_TAG, e.toString()); 
     } 
    } 

    private List<String> FindFiles(Boolean fullPath) { 
     final List<String> tFileList = new ArrayList<String>(); 
     Resources resources = getResources(); 
     // array of valid audio file extensions 
     String[] audioTypes = resources.getStringArray(R.array.audio); 
     FilenameFilter[] filter = new FilenameFilter[audioTypes.length]; 
     int i = 0; 
     for (final String type : audioTypes) { 
      filter[i] = new FilenameFilter() { 
       public boolean accept(File dir, String name) { 
        return name.endsWith("." + type); 
       } 
      }; 
      i++; 
     } 
     FileUtils fileUtils = new FileUtils(); 
     File[] allMatchingFiles = fileUtils.listFilesAsArray(
       new File(DIRECTORY), filter, -1); 
     for (File f : allMatchingFiles) { 
      if (fullPath) { 
       tFileList.add(f.getAbsolutePath()); 
      } else { 
       tFileList.add(f.getName()); 
      } 
     } 
     return tFileList; 
    }// find fil 

    @SuppressWarnings("unchecked") 
    public List<String> loadArray(String filename) { 
     try { 
      FileInputStream fis = new FileInputStream(filename); 
      GZIPInputStream gzis = new GZIPInputStream(fis); 
      ObjectInputStream in = new ObjectInputStream(gzis); 
      List<String> read_field = (List<String>) in.readObject(); 
      in.close(); 
      return read_field; 
     } catch (Exception e) { 
      e.getStackTrace(); 
     } 
     return null; 
    } 

    public Collection<File> listFiles(File directory, FilenameFilter[] filter, 
      int recurse) { 

     Vector<File> files = new Vector<File>(); 

     File[] entries = directory.listFiles(); 

     if (entries != null) { 
      for (File entry : entries) { 
       for (FilenameFilter filefilter : filter) { 
        if (filter == null 
          || filefilter.accept(directory, entry.getName())) { 
         files.add(entry); 
         Log.v(LOG_TAG, "Added: " + entry.getName()); 
        } 
       } 
       if ((recurse <= -1) || (recurse > 0 && entry.isDirectory())) { 
        recurse--; 
        files.addAll(listFiles(entry, filter, recurse)); 
        recurse++; 
       } 
      } 
     } 
     return files; 

    } 

    public class FileUtils { 

     public void saveArray(String filename, List<String> output_field) { 
      try { 
       FileOutputStream fos = new FileOutputStream(filename); 
       GZIPOutputStream gzos = new GZIPOutputStream(fos); 
       ObjectOutputStream out = new ObjectOutputStream(gzos); 
       out.writeObject(output_field); 
       out.flush(); 
       out.close(); 
      } catch (IOException e) { 
       e.getStackTrace(); 
      } 
     } 

     public File[] listFilesAsArray(File directory, FilenameFilter[] filter, 
       int recurse) { 
      Collection<File> files = listFiles(directory, filter, recurse); 

      File[] arr = new File[files.size()]; 
      return files.toArray(arr); 
     } 
    } 

} 

を必要に応じて上記のコードは、すべて以下は、あなたがあなたの条件に応じてハッピーコーディングそれらを変更することができますSDカードからの拡張子のファイルが含まれて一覧表示されます返信してくださいhttp://www.coderanch.com/t/44:このリンクスルーresフォルダ

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string-array name="audio"> 
<item>aif</item> 
<item>aifc</item> 
<item>aiff</item> 
<item>au</item> 
<item>mid</item> 
<item>mp3</item> 
<item>ogg</item> 
<item>snd</item> 
<item>wav</item> 
</string-array> 
</resources> 
0
public class Images extends Activity 
    { 
     private Uri[] mUrls; 
     String[] mFiles=null; 

     public void onCreate(Bundle icicle) 
     { 

      super.onCreate(icicle); 
      setContentView(R.layout.images); 

      File images = Environment.getDataDirectory(); 
      File[] imagelist = images.listFiles(new FilenameFilter(){ 
      @override 
      public boolean accept(File dir, String name) 
      { 
       return ((name.endsWith(".jpg"))||(name.endsWith(".png")) 
      } 
     }); 
      mFiles = new String[imagelist.length]; 

      for(int i= 0 ; i< imagelist.length; i++) 
      { 
       mFiles[i] = imagelist[i].getAbsolutePath(); 
      } 
      mUrls = new Uri[mFiles.length]; 

      for(int i=0; i < mFiles.length; i++) 
      { 
       mUrls[i] = Uri.parse(mFiles[i]);  
      }  

      Gallery g = (Gallery) findViewById(R.id.gallery); 
      g.setAdapter(new ImageAdapter(this)); 
      g.setFadingEdgeLength(40); 
     } 
     public class ImageAdapter extends BaseAdapter{ 

      int mGalleryItemBackground; 
      public ImageAdapter(Context c) {  
       mContext = c;  
      } 
      public int getCount(){ 
       return mUrls.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 i = new ImageView(mContext); 

       i.setImageURI(mUrls[position]); 
       i.setScaleType(ImageView.ScaleType.FIT_XY); 
       i.setLayoutParams(new Gallery.LayoutParams(260, 210)); 
       return i; 
      }  
      private Context mContext; 
      }  
     } 
+0

こんにちはpragna:返信いただきありがとうございます、私は何を見て、画像フォルダに背景画像を設定しています – jhon