当前位置: 首页 > news >正文

婚庆网站开发背景linode安装wordpress

婚庆网站开发背景,linode安装wordpress,太原搜索引擎优化招聘信息,wordpress 客户端管理有些时候需要将res中的资源文件加载进来然后做一些修改#xff0c;然后再赋值给控件使用#xff0c;比如这样#xff1a; Drawable drawable getResources().getDrawable(int id); 现在我需要把资源文件id所对应的Drawable对象加载进来#xff0c;然后做向下转型处理然后再赋值给控件使用比如这样 Drawable drawable getResources().getDrawable(int id); 现在我需要把资源文件id所对应的Drawable对象加载进来然后做向下转型处理如果我不调试查看本身的类型的话该怎么知道它到底是哪种类型呢我们来通过源代码查看究竟 首先我们找到getResources().getDrawable()方法 public Drawable getDrawable(int id) throws NotFoundException {synchronized (mTmpValue) {TypedValue value mTmpValue;getValue(id, value, true);return loadDrawable(value, id);}}这个方法并没有做什么进入到loadDrawable方法中 /*package*/ Drawable loadDrawable(TypedValue value, int id)throws NotFoundException {if (TRACE_FOR_PRELOAD) {// Log only framework resourcesif ((id 24) 0x1) {final String name getResourceName(id);if (name ! null) android.util.Log.d(PreloadDrawable, name);}}final long key (((long) value.assetCookie) 32) | value.data;Drawable dr getCachedDrawable(key);if (dr ! null) {return dr;}Drawable.ConstantState cs sPreloadedDrawables.get(key);if (cs ! null) {dr cs.newDrawable(this);} else {if (value.type TypedValue.TYPE_FIRST_COLOR_INT value.type TypedValue.TYPE_LAST_COLOR_INT) {dr new ColorDrawable(value.data);}if (dr null) {if (value.string null) {throw new NotFoundException(Resource is not a Drawable (color or path): value);}String file value.string.toString();if (DEBUG_LOAD) Log.v(TAG, Loading drawable for cookie value.assetCookie : file);if (file.endsWith(.xml)) {try {XmlResourceParser rp loadXmlResourceParser(file, id, value.assetCookie, drawable);dr Drawable.createFromXml(this, rp);rp.close();} catch (Exception e) {NotFoundException rnf new NotFoundException(File file from drawable resource ID #0x Integer.toHexString(id));rnf.initCause(e);throw rnf;}} else {try {InputStream is mAssets.openNonAsset(value.assetCookie, file, AssetManager.ACCESS_STREAMING);// System.out.println(Opened file file : is);dr Drawable.createFromResourceStream(this, value, is,file, null);is.close();// System.out.println(Created stream: dr);} catch (Exception e) {NotFoundException rnf new NotFoundException(File file from drawable resource ID #0x Integer.toHexString(id));rnf.initCause(e);throw rnf;}}}}if (dr ! null) {dr.setChangingConfigurations(value.changingConfigurations);cs dr.getConstantState();if (cs ! null) {if (mPreloading) {sPreloadedDrawables.put(key, cs);} else {synchronized (mTmpValue) {//Log.i(TAG, Saving cached drawable # // Integer.toHexString(key.intValue())// in this : cs);mDrawableCache.put(key, new WeakReferenceDrawable.ConstantState(cs));}}}}return dr;}这一大段我们看主要的 if (file.endsWith(.xml)) {try {XmlResourceParser rp loadXmlResourceParser(file, id, value.assetCookie, drawable);dr Drawable.createFromXml(this, rp);rp.close();} catch (Exception e) {NotFoundException rnf new NotFoundException(File file from drawable resource ID #0x Integer.toHexString(id));rnf.initCause(e);throw rnf;}} 这里以selector说明selector是定义在xml中的我们就找到这个地方它原来是使用XmlResourceParser来对xml资源文件进行解析的咱们进去createFromXml方法内部一探究竟 /*** Create a drawable from an XML document. For more information on how to* create resources in XML, see* a href{docRoot}guide/topics/resources/drawable-resource.htmlDrawable Resources/a.*/public static Drawable createFromXml(Resources r, XmlPullParser parser)throws XmlPullParserException, IOException {AttributeSet attrs Xml.asAttributeSet(parser);int type;while ((typeparser.next()) ! XmlPullParser.START_TAG type ! XmlPullParser.END_DOCUMENT) {// Empty loop}if (type ! XmlPullParser.START_TAG) {throw new XmlPullParserException(No start tag found);}Drawable drawable createFromXmlInner(r, parser, attrs);if (drawable null) {throw new RuntimeException(Unknown initial tag: parser.getName());}return drawable;}从这段代码中我们可以发现最主要的工作是由方法createFromXmlInner来完成的我们进去看看 /*** Create from inside an XML document. Called on a parser positioned at* a tag in an XML document, tries to create a Drawable from that tag.* Returns null if the tag is not a valid drawable.*/public static Drawable createFromXmlInner(Resources r, XmlPullParser parser, AttributeSet attrs)throws XmlPullParserException, IOException {Drawable drawable;final String name parser.getName();if (name.equals(selector)) {drawable new StateListDrawable();} else if (name.equals(level-list)) {drawable new LevelListDrawable();} else if (name.equals(layer-list)) {drawable new LayerDrawable();} else if (name.equals(transition)) {drawable new TransitionDrawable();} else if (name.equals(color)) {drawable new ColorDrawable();} else if (name.equals(shape)) {drawable new GradientDrawable();} else if (name.equals(scale)) {drawable new ScaleDrawable();} else if (name.equals(clip)) {drawable new ClipDrawable();} else if (name.equals(rotate)) {drawable new RotateDrawable();} else if (name.equals(animated-rotate)) {drawable new AnimatedRotateDrawable(); } else if (name.equals(animation-list)) {drawable new AnimationDrawable();} else if (name.equals(inset)) {drawable new InsetDrawable();} else if (name.equals(bitmap)) {drawable new BitmapDrawable();if (r ! null) {((BitmapDrawable) drawable).setTargetDensity(r.getDisplayMetrics());}} else if (name.equals(nine-patch)) {drawable new NinePatchDrawable();if (r ! null) {((NinePatchDrawable) drawable).setTargetDensity(r.getDisplayMetrics());}} else {throw new XmlPullParserException(parser.getPositionDescription() : invalid drawable tag name);}drawable.inflate(r, parser, attrs);return drawable;}噢噢原来是这样啊我定义什么样类型的图片最后就有什么样的Java类型与之对应原来我的selector对应StateListDrawable恍然大悟接下来就容易处理了。
http://www.pierceye.com/news/215049/

相关文章:

  • 美食网站建设规划书外链工具软件
  • 网站设计模板代码七牛wordpress后台慢
  • 佛山网站建设怎么办huang色网站
  • 涞水县建设局网站wordpress wp_enqueue_script
  • 网站怎么添加音乐wordpress livechat
  • 网站开发的业务需求分析学校网站建设运行简介
  • 网站建设找博网iis7.0网站错误代码解决
  • 嘉鱼网站建设公司php网站开发技术期末题库
  • 企业网站搭建方案wordpress代码编辑器件
  • 网站的大小黄埔移动网站建设
  • 建设网站的语言中囯军事网
  • 网站开发职业访谈上海 建设工程质量监督站网站
  • 网站开发程序用什么好用新浪微博做网站
  • 什么免费推广网站好旅游订房网站开发需求文档
  • 网站运营是做啥的wordpress带会员中心主题
  • 网站设计怎么弄微信表情开放平台官网
  • 做网站纸张大小滨州网站建设模板建设
  • wordpress建站位置被跨境电商骗了怎么办
  • 巫山网站建设哇塞fm网站维护
  • 南宁百度网站推广计算机网站建设与推广
  • 汉中网站建设开发做微网站是订阅号还是服务号号
  • 中国商城网站建设h5响应式网站模板下载
  • 建设个商城网站需要多少钱网上商城系统平台官网
  • 软件开发与网站开发的区别最新源码
  • 电子商务网站建设策划中国网站建设公司排行
  • 网站的推广方式组合经验丰富的网站制作公司
  • 北京企业网站建设php制作公司网站首页
  • 保险网站建设网站 为何要 备案
  • 南宁网站设计可以找我wordpress 主题
  • 池州家居网站建设怎么样h5链接是什么意思