파일 탐색기 소스인데 ㅠㅠ

xml 리니어 레이아웃으로 형태를 바꿔서 하고싶은데 ㅠㅠ

 

어떻게해야할까요 ?

IconView
 package daegu.android; 
import android.content.Context;  
import android.graphics.Color;
import android.text.Layout;
import android.text.TextUtils;  
import android.text.style.BackgroundColorSpan;
import android.view.Gravity;  
import android.widget.ImageView;  
import android.widget.LinearLayout;  
import android.widget.TextView; 
public class IconView extends LinearLayout
{
        private ImageView mIcon;
        private TextView mFileName;
        
        public IconView(Context context, int iconResId, String fileName)
        {
                super(context);
               
                this.setOrientation(VERTICAL);
                this.setPadding(3, 3, 3, 3);
                this.setGravity(Gravity.CENTER_HORIZONTAL);
                this.setBackgroundColor(Color.WHITE);
                
                mIcon = new ImageView(context);
                mIcon.setScaleType(ImageView.ScaleType.FIT_CENTER);
                mIcon.setImageResource(iconResId);
                addView(mIcon, new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
               
                mFileName = new TextView(context);
                mFileName.setSingleLine();
                mFileName.setEllipsize(TextUtils.TruncateAt.END);
                mFileName.setText(fileName);
                addView(mFileName, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
        }
       
        public void select()
        {
                mFileName.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        }
       
        public void deselect()
        {
                mFileName.setEllipsize(TextUtils.TruncateAt.END);
        }
       
        public void setIconResId(int resId)
        {
                mIcon.setImageResource(resId);
        }
        public void setFileName(String fileName)
        {
                mFileName.setText(fileName);
        }
}


FileBrowser
 package daegu.android;
FileBrowser
import java.io.File;
import java.util.ArrayList;
FileBrowser
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
FileBrowser
public class FileBrowserDemoActivity extends Activity implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener, AdapterView.OnItemSelectedListener
{
    private GridView mGrid;
    private File mCurrentDir;
    private ArrayList<File> mFiles;
    private String[] mFilters;
    private String[] mAudioExt;
    private String[] mImageExt;
    private String[] mArchiveExt;
    private String[] mWebExt;
    private String[] mTextExt;
    private String[] mVideoExt;
    private String[] mGeoPosExt;
    private boolean mStandAlone;
    private IconView mLastSelected;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
            super.onCreate(savedInstanceState);
           
            mFiles = new ArrayList<File>();
           
            mAudioExt = getResources().getStringArray(R.array.fileEndingAudio);
            mImageExt = getResources().getStringArray(R.array.fileEndingImage);
            mArchiveExt = getResources().getStringArray(R.array.fileEndingPackage);
            mWebExt = getResources().getStringArray(R.array.fileEndingWebText);
            mTextExt = getResources().getStringArray(R.array.fileEndingText);
            mVideoExt = getResources().getStringArray(R.array.fileEndingVideo);
            mGeoPosExt = getResources().getStringArray(R.array.fileEndingGeoPosition);
           
            Intent intent = getIntent();
            String action = intent.getAction();
           
            if(action == null || action.compareTo(Intent.ACTION_MAIN) == 0)
                    mStandAlone = true;
            else
                    mStandAlone = false;
           
            mFilters = intent.getStringArrayExtra("FileFilter");
           
            if(intent.getData() == null) browseTo(new File("/"));
            else browseTo(new File(intent.getDataString()));
           
            Display display = getWindowManager().getDefaultDisplay();
FileBrowser
            mGrid = new GridView(this);
            mGrid.setNumColumns(display.getWidth() / 60);
            mGrid.setOnItemClickListener(this);
            mGrid.setOnItemLongClickListener(this);
            mGrid.setOnItemSelectedListener(this);
            mGrid.setAdapter(new IconAdapter());
           
            setContentView(mGrid);
    }
   
    private synchronized void browseTo(final File location)
    {
            mCurrentDir = location;
           
            mFiles.clear();
           
            this.setTitle(mCurrentDir.getName().compareTo("") == 0 ? mCurrentDir.getPath() : mCurrentDir.getName());
           
            if(location.getParentFile() != null) mFiles.add(mCurrentDir.getParentFile());
           
            for(File file : mCurrentDir.listFiles())
            {
                    if(file.isDirectory())
                    {
                            mFiles.add(file);
                    }
                    else if(mFilters != null)
                    {
                            for(String ext : mFilters)
                            {
                                    if(file.getName().endsWith(ext))
                                    {
                                            mFiles.add(file);
                                            continue;
                                    }
                            }
                    }
                    else
                    {
                            mFiles.add(file);
                    }
            }
           
            if(mGrid != null) mGrid.setAdapter(new IconAdapter());
    }
FileBrowser
    public class IconAdapter extends BaseAdapter
    {
            @Override
            public int getCount()
            {
                    return mFiles.size();
            }
FileBrowser
            @Override
            public Object getItem(int index)
            {
                    return mFiles.get(index);
            }
FileBrowser
            @Override
            public long getItemId(int index)
            {
                    return index;
            }
FileBrowser
            @Override
            public View getView(int index, View convertView, ViewGroup parent)
            {
                    IconView icon;
                    File currentFile = mFiles.get(index);
                   
                    int iconId;
                    String filename;
                   
                    if(index == 0 && (currentFile.getParentFile() == null || currentFile.getParentFile().getAbsolutePath().compareTo(mCurrentDir.getAbsolutePath()) != 0))
                    {
                            iconId = R.drawable.updirectory;
                            filename = new String("..");
                    }
                    else
                    {
                            iconId = getIconId(index);
                            filename = currentFile.getName();
                    }
FileBrowser
                    if(convertView == null)
                    {                  
                            icon = new IconView(FileBrowserDemoActivity.this, iconId, filename);
                    }
                    else
                    {
                            icon = (IconView)convertView;
                            icon.setIconResId(iconId);
                            icon.setFileName(filename);
                    }
                   
                    return icon;
            }
           
            private int getIconId(int index)
            {
                    File file = mFiles.get(index);
                   
                    if(file.isDirectory()) return R.drawable.directory;
                   
                    for(String ext : mAudioExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.audio;
                    }
                   
                    for(String ext : mArchiveExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.archive;
                    }
                   
                    for(String ext : mImageExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.image;
                    }
                   
                    for(String ext : mWebExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.webdoc;
                    }
                   
                    for(String ext : mTextExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.text;
                    }
                   
                    for(String ext : mVideoExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.video;
                    }
                   
                    for(String ext : mGeoPosExt)
                    {
                            if(file.getName().endsWith(ext)) return R.drawable.geoposition;
                    }
                   
                    return R.drawable.unknown;
            }
    }
FileBrowser
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long id)
    {
            File file = mFiles.get((int)id);
           
            if(file.isDirectory())
            {
                    browseTo(file);
            }
            else
            {
                    if(!mStandAlone)
                    {
                            // Send back the file that was selected
                            Uri path = Uri.fromFile(file);
                            Intent intent = new Intent(Intent.ACTION_PICK, path);
                            setResult(RESULT_OK, intent);                  
                            finish();
                    }
                    else
                    {
                            // Try to open it
                            Intent intent = new Intent(Intent.ACTION_VIEW);
                            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                            intent.setDataAndType(Uri.fromFile(file), getMimeType(file));
                            startActivity(Intent.createChooser(intent, null));
                    }
            }
    }
FileBrowser
    @Override
    public boolean onItemLongClick(AdapterView<?> parentView, View view, int arg2, long id)
    {
            final File file = mFiles.get((int)id);
            final File parent = file.getParentFile();
           
            new AlertDialog.Builder(FileBrowserDemoActivity.this)
    .setIcon(android.R.drawable.ic_menu_agenda)
    .setItems(R.array.file_options, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            switch(whichButton)
            {
//          case 0: // Rename
//                  file.renameTo(new File(parent, "Bubba.txt"));
//                  browseTo(parent);
//                  break;
            case 0: // Delete
                    file.delete();
                    browseTo(parent);
                    break;
//          case 2: // Cut
//                  break;
//          case 3: // Copy
//                  break;
            case 1: // Send To...
                    Intent intent = new Intent(Intent.ACTION_SEND);
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.setType(getMimeType(file));
                    intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
                    startActivity(Intent.createChooser(intent, null));
                    break;
            }
            dialog.dismiss();
        }
    })
   .create().show();
           
            return true;
    }
   
    private String getMimeType(File file)
    {
            for(String ext : mAudioExt)
            {
                    if(file.getName().endsWith(ext)) return "audio/*";
            }
           
            for(String ext : mArchiveExt)
            {
                    if(file.getName().endsWith(ext)) return "archive/*";
            }
           
            for(String ext : mImageExt)
            {
                    if(file.getName().endsWith(ext)) return "image/*";
            }
           
            for(String ext : mWebExt)
            {
                    if(file.getName().endsWith(ext)) return "text/html";
            }
           
            for(String ext : mTextExt)
            {
                    if(file.getName().endsWith(ext)) return "text/plain";
            }
           
            for(String ext : mVideoExt)
            {
                    if(file.getName().endsWith(ext)) return "video/*";
            }
           
            for(String ext : mGeoPosExt)
            {
                    if(file.getName().endsWith(ext)) return "audio/*";
            }
           
            return "";
    }
FileBrowser
    @Override
    public void onItemSelected(AdapterView<?> grid, View icon, int arg2, long index)
    {
            if(mLastSelected != null)
            {
                    mLastSelected.deselect();
            }
           
            if(icon != null)
            {
                    mLastSelected = (IconView)icon;
                    mLastSelected.select();
            }
           
    }
FileBrowser
    @Override
    public void onNothingSelected(AdapterView<?> grid)
    {
            if(mLastSelected != null)
            {
                    mLastSelected.deselect();
                    mLastSelected = null;
            }
    }
}
FileBrowser