Android 如何预览R.drawable.*图像
Android框架有各种各样的图标和图像,可以通过R.drawable.*访问,这些图标和图像可以被应用程序用于普通任务。他们的名字暗示了他们是什么,但在很多情况下这还不够。人们必须使用反复试验来找到适合自己目的的正确图标 我的问题是:有没有一种方法可以让我在一个地方预览所有这些图像,这样我就可以快速决定使用哪些图像 我已经查看了android源代码,但找不到这些Drawable的根 如果你们有什么建议,请告诉我。Android 如何预览R.drawable.*图像,android,icons,Android,Icons,Android框架有各种各样的图标和图像,可以通过R.drawable.*访问,这些图标和图像可以被应用程序用于普通任务。他们的名字暗示了他们是什么,但在很多情况下这还不够。人们必须使用反复试验来找到适合自己目的的正确图标 我的问题是:有没有一种方法可以让我在一个地方预览所有这些图像,这样我就可以快速决定使用哪些图像 我已经查看了android源代码,但找不到这些Drawable的根 如果你们有什么建议,请告诉我。 谢谢。我找到了一个有用的链接,在那里我找到了谷歌官方网站。它似乎包含了大部分(如
谢谢。我找到了一个有用的链接,在那里我找到了谷歌官方网站。它似乎包含了大部分(如果不是全部的话)Android内置的绘图功能。谢谢Corey,这正是我想要的。与此同时,我制作了一个小应用程序来预览所有的绘图。这是一个小应用程序,它使用反射来列出所有可绘制内容(图像预览及其名称),如本屏幕截图所示 基本上是以下代码片段:
public class DrawablePreviewActivity extends ListActivity
{
private static final String TAG = "DrawablePreviewActivity";
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTitle("Preview of android.R.drawable.*");
try {
Class RClass = Class.forName("android.R");
Class[] subclasses = RClass.getDeclaredClasses();
Class RDrawable = null;
for(Class subclass : subclasses) {
if("android.R.drawable".equals(subclass.getCanonicalName())) {
RDrawable = subclass;
break;
}
}
List<Map<String, Object>> drinfo = new ArrayList<Map<String, Object>>();
Field[] drawables = RDrawable.getFields();
for(Field dr : drawables) {
Map<String, Object> map = new HashMap<String, Object>();
Drawable img = getResources().getDrawable(dr.getInt(null));
map.put("drimg", dr.getInt(null));
map.put("drname", dr.getName());
drinfo.add(map);
}
setListAdapter(new SimpleAdapter(this,
drinfo,
R.layout.listitem,
new String[] { "drimg", "drname" },
new int[] { R.id.drimg, R.id.drname }));
} catch(IllegalAccessException iae) {
Log.e(TAG, iae.toString());
} catch(ClassNotFoundException cnfe) {
Log.e(TAG, cnfe.toString());
}
}
}
公共类DrawablePreviewActivity扩展了ListActivity
{
私有静态最终字符串标记=“DrawablePreviewActivity”;
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTitle(“android.R.drawable.*预览版”);
试一试{
Class RClass=Class.forName(“android.R”);
类[]子类=RClass.getDeclaredClasses();
类RDrawable=null;
for(类子类:子类){
if(“android.R.drawable”.equals(子类.getCanonicalName())){
RDrawable=子类;
打破
}
}
List drinfo=new ArrayList();
字段[]drawables=RDrawable.getFields();
用于(现场dr:可抽出式){
Map Map=newhashmap();
Drawable img=getResources().getDrawable(dr.getInt(null));
map.put(“drimg”,dr.getInt(null));
put(“drname”,dr.getName());
添加(地图);
}
setListAdapter(新SimpleAdapter)(此,
德林福,
R.layout.listitem,
新字符串[]{“drimg”,“drname”},
新的int[]{R.id.drimg,R.id.drname});
}捕获(IllegalacessException iae){
Log.e(TAG,iae.toString());
}捕获(ClassNotFoundException cnfe){
Log.e(TAG,cnfe.toString());
}
}
}
您还可以从中获取源tarball
或者从android sdk根目录/platforms/android-X/data/res/drawable hdpi下载apk,您可以预览android sdk目录中的所有系统图标 在Mac上查找Android SDK目录:
Android Studio
Preferences
sdk
:外观和行为系统设置Android sdk
Android SDK位置
/platforms/Android-VER(21~28)
/data/res/drawable hdpi/
使用Finder.app
访问目录,将项目显示为图标,然后可以预览所有系统图标
您还可以按图标名称进行搜索,例如搜索包含ic\u菜单的图标
:
为什么APK需要电话接入?!哦,太棒了!谢谢分享:-这是答案,我不确定是否是完整的列表,但这应该是标记的接受答案。