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资源了。