Android使用自带的资源--所有系统自带Drawable的列表查看工具

由于从帮助文档只能看到资源名以及资源id,无法查看到资源的图,于是本人就想弄一个应用程序可以查看所有的系统自带的图片资源。之后,从网上搜了一下,发现了了一个哥们分享了一个apk以及主要代码,但是我找到目录之后却提示资源不存在!然后本人就自己动手弄了一下。我也是按照http://www.linuxidc.com/Linux/2011-09/43210.htm这个思路来的。

1.首先,在布局文件中添加一个TextView和GridView。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical" >
    <TextView 
        android:id="@+id/txt"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="在这里显示信息!"></TextView>

    <GridView
        android:id="@+id/my_gridview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="2" >

</GridView>

</LinearLayout>

 

2.为GridView建一个适配器类ImageAdapter。

 1 package com.jru.androiddrawablelist;
 2 
 3 import android.content.Context;
 4 import android.view.View;
 5 import android.view.ViewGroup;
 6 import android.widget.ImageView;
 7 import android.widget.BaseAdapter;
 8 
 9 public class ImageAdapter extends BaseAdapter {
10 
11     private int id;
12     private Context context;
13     public ImageAdapter(Context c)
14     {
15         this.context=c;
16     }
17     @Override
18     public int getCount() {
19         // TODO Auto-generated method stub
20         return 201;
21     }
22     @Override
23     public Object getItem(int position) {
24         return position;
25     }
26     @Override
27     public long getItemId(int position) {
28         return position;
29     }
30     @Override
31     public View getView(int position, View convertview, ViewGroup arg2) 
32     {
33         ImageView iv=new ImageView(context);
34           id=0x01080000+position;  
35           if(null!=context.getResources().getDrawable(id))
36           {
37           iv.setImageResource(id);
38           }else{
39               iv.setImageResource(0x01080000);
40           }
41         return iv;
42     }
43 
44 }

 

3.在MainActivity中适配一下,并添加事件代码。

 1 package com.jru.androiddrawablelist;
 2 
 3 import android.os.Bundle;
 4 import android.app.Activity;
 5 import android.view.View;
 6 import android.widget.AdapterView;
 7 import android.widget.AdapterView.OnItemClickListener;
 8 import android.widget.AdapterView.OnItemSelectedListener;
 9 import android.widget.GridView;
10 import android.widget.LinearLayout;
11 import android.widget.TextView;
12 
13 public class MainActivity extends Activity {
14 
15     private MainActivity ard=this;  
16     private LinearLayout mainView=null;  
17     private TextView tv=null;  
18     private GridView gv=null;  
19     private int id=0x01080000;  
20       
21     @Override
22     public void onCreate(Bundle savedInstanceState) {  
23         super.onCreate(savedInstanceState);  
24        
25       setContentView(R.layout.activity_main);  
26       gv_init(); 
27     }  
28       
29     /*gv初始化*/  
30     private void gv_init(){  
31         gv=(GridView)findViewById(R.id.my_gridview);  
32         tv=(TextView)findViewById(R.id.txt);
33         ImageAdapter adpter=new ImageAdapter(MainActivity.this);
34         gv.setAdapter(adpter);  
35       
36         gv.setOnItemClickListener(new OnItemClickListener(){  
37             public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {  
38                 tv.setText("图标名称:"+ard.getResources().getResourceEntryName(0x01080000+arg2)+"\n");  
39                 tv.append("图标Id:0x"+Integer.toHexString(0x10800000+arg2)+"\n");  
40                 tv.append("图标大小:"+arg1.getWidth()+"x"+arg1.getHeight()+"\n");  
41             }  
42         });  
43         gv.setOnItemSelectedListener(new OnItemSelectedListener(){  
44             public void onItemSelected(AdapterView<?> arg0, View arg1,int arg2, long arg3) {  
45                 tv.setText("图标名称:"+ard.getResources().getResourceEntryName(0x01080000+arg2)+"\n");  
46                 tv.append("图标Id:0x"+Integer.toHexString(0x10800000+arg2)+"\n");  
47                 tv.append("图标大小:"+arg1.getWidth()+"x"+arg1.getHeight()+"\n");  
48             }  
49             public void onNothingSelected(AdapterView<?> arg0) {  
50               
51             }  
52         });  
53     }  
54 
55 }

OK。接下来就可以尽情享用系统自带的drawable资源了。

posted @ 2012-12-10 14:58  Jerry Ru  阅读(838)  评论(0编辑  收藏  举报