android保存drawable
根据图片名称获取图片id,下面介绍两种方法,问题解决方法来源于android学习手册,360手机助手中下载。里面108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。
假如在drawable目录下放一个图片文件,由于一些原因,我们在程序中仅仅知道它的文件名,而不知道它的资源ID,当我们需要这个资源ID的时候,可以使用下面的一行代码获取到:
方法一:
java代码
/**
* 获取图片名称获取图片的资源id的方法
* @param imageName
* @return
*/
public int getResource(String imageName){
Context ctx=getBaseContext();
int resId = getResources().getIdentifier(imageName, "drawable" , ctx.getPackageName());
return resId;
方法二:
Java代码
/**
* 获取图片名称获取图片的资源id的方法
* @param imageName
* @return
*/
public int getResourceByReflect(String imageName){
Class drawable = R.drawable.class;
Field field = null;
int r_id ;
try {
field = drawable.getField(imageName);
r_id = field.getInt(field.getName());
} catch (Exception e) {
r_id=R.drawable.b_nothing;
Log.e("ERROR", "PICTURE NOTFOUND!");
}
return r_id;
}
知道资源ID,获取资源的文件名
getResources().getResourceName(resid)
B. Android drawable文件夹图片怎么分配
drawable文件下主要存放APP资源文件,包括XML,图片等。
drawable下主要存放XML。
drawable-h、drawable-x等文件下主要存放不同的分辨率的图片。比如你有一个箭头的图片,但是可能在低分辨率下显示还行,高分辨率下失真了,这个时候你可以在相应分辨率下的drawable文件下存放不同分辨率的但名称都是 arrow.png的图片。安卓系统会自动读取不同分辨率的。
C. android 获取当前壁纸的Drawable对象或者Bitmap。如何获取这张图片的ID或者名称。
如果图片放在android的资源文件夹中,就用反射,获取他的名字,然后自己去截取、反射应该懂吧。。如果不是,在本地的文件夹、就更简单了,直接用文件获取名字。如果不懂反射就M。。
D. android是根据什么去选drawable文件夹下的图片
drawable-
hdpi、drawable-
mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA
(480x800),FWVGA
(480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA
(320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA
(240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。
E. 在android工程中,res目录下又有anim、drawable、layout、menu、raw、values和xml文件夹,分别用来保存
res目录主要是存放资源文件的!
layout 布局 这个就是你经常看到的与用户交互的界面的 xml 文件,就是各个 view 的排列和嵌套,没什 么好说的啦 风格和主题、 风格主要是指 view 的显示风格 ;
anim 一般是设置动画,画资源分为两种,一是实现图片的 translate、scale、rotate、alpha 四种变化。还可以设置 动画的播放特性;另一种是帧动画,逐帧播放设置的资源;
drawable 主要是是存放所使用的图片的!
menu:菜单 菜单即可以从代码中实现也可以在资源文件中配置;
把图像文件放在 res/raw/ 目录下,这样可以避免被自动优化。
values 是用程序人员设置的一些常量的XML文件,便于修改和使用,一般有Strings,colors等
assets 文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像 xml, java 文件被预编译,可以存放一些图片,html,js, css 等文件。
F. android 我图片保存在drawable中。名字是从数据库中读出来,怎么让名字与图片匹配急急急
图片是drawable中的 也就是说他是有id的,你记录下图片的id(R.drawable.id)存到数据库里与名字一一对应,等到取出来之后就用id来找就可以了
G. 安卓如何保存桌面壁纸
请先手指长触屏幕或者按“menu”键(或到手机设置中找到显示里面也有壁纸设置),此时画面将会弹出“添加到桌面”窗口,点击其中的“壁纸”。在出现的下拉窗口中,“壁纸”是手机内置的一些壁纸,“图片”里你可以设置你SD卡里的图片或者已拍摄的照片做为壁纸。
这里介绍的是自定义壁纸图片,所以点击的是“图片”,在出现图片设置界面中,你可以看到本机上的照片及SD卡上的所有图片。为了方便管理,把图片放在“picture”文件夹中便于查找。
选择你想要的壁纸,选取好图片的尺寸之后,就可以点击“保存”来保存为桌面壁纸,这样属于你自己的个性壁纸就设置完成了。
具体可参考网络经验http://jingyan..com/article/2c8c281de92beb0008252a23.html
H. Android,想获取这个对象里面的Drawable应该使用那个方法
Drawable drawable=getResource().getDrawable(R.drawable.xxx);
这个例子来源于android学习手册,360手机助手中可以下载,里面有108个android例子,源码文档都可在里面看,下面是截图
方式一:
已将图片保存到drawable目录下,通过图片id获得Drawable或者Bitmap,此方式最常用。(若只知道图片的名称,还可以通过图片的名称获得图片的id)
(1)通过图片id获得Drawable
Drawable drawable=getResource().getDrawable(R.drawable.xxx);
(2)通过图片id获得Bitmap
Resource res=gerResource();
Bitmap bitmap=BitmapFactory.decodeResource(res, id);
(3)通过图片的名称获得图片的id(两种方法)
int id =res.getIdentifier(name, defType, defPackage); //name:图片的名,defType:资源类型(drawable,string。。。),defPackage:工程的包名
Drawable drawable=getResource().getDrawable(id);
方式二:
已将图片保存到assest目录下,知道图片的名称,通过inputstream获得图片Drawabl
或者 Bitmap
AssetManager asm=getAssetMg();
InputStream is=asm.open(name);//name:图片的名称
(1)获得Drawable
Drawable da = Drawable.createFromStream(is, null);
(2)获得Bitmap
Bitmap bitmap=BitmapFactory.decodeStream(is);
方式三: 图片保存在sdcard,通过图片的路径h
/图片路径
String imgFilePath = Environment.getExternalStorageDirectory().toString()
+ “/DCIM/device.png”;
I. android 怎么把drawable-mdpi中的图片保存到sdcard卡中
我只说明一下思路,具体的代码实现你自己去做吧。
思路如下:
第一,先用Bitmap 以R.drawable.imgid为source生成一个bitmap对象
第二,再把这个对象以bitmap形式用IO流写入到sdcard中。
希望对你有帮助。
J. android开发res文件夹下有drawable-hdpi,drawable-mdpi,drawable-ldpi,我如果有一个图片要放里面 应该
因为使用Android系统的手机可能采用不同的分辨率,所以在开发的时候会要求有不同分辨率的图片,drawable-hdpi存高分辨率的,drawable-mdpi存中等分辨率的,drawable-ldpi存低分辨率的,所以,你要把相同的图片用图片处理软件处理成不同的分辨率的图片,然后分别保存,当然了,如果你嫌麻烦,也可以在三个目录下保存相同的图片,这样也没有问题,但是不符合开发的初衷。