当前位置: 首页 > 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.zqtcl.cn/news/215049/

相关文章:

  • 慈溪企业网站建设公司wordpress网盘搜索引擎源码
  • 建筑类企业网站模板怎么制作网站链接
  • 常州网站建设外包襄阳做网站的
  • 临清网站优化用jsp做网站的感想
  • 个人工作室网站网站备案 万网
  • 网络推广模板网站会员管理软件
  • 西乡塘网站建设网站建设公司的成本有哪些方面
  • 在哪里可以学习做网站西安制作公司网站的公司
  • 网站建设 更新 维护淮北矿业工程建设公司网站
  • 网站开发 平台宝应做网站
  • 网站开发开题报告广州的兼职网站建设
  • 辽宁同鑫建设网站网站后期维护费用
  • 政法网站建设有哪些不足广州网站建设信息科技有限公司
  • 营销型网站 平台海口智能建站价格
  • 网站空间过期电商网站建设比较好的
  • seo公司 彼亿营销舆情优化公司
  • diango是做网站的后端吗网页怎么做成app
  • 思勤传媒网站建设公司如何查询网站的外链
  • 网站设计思路文案范文专业手机网站建设多少钱
  • 有部分网站打不开网站服务内容怎么写
  • 百度安全网站检测好看的免费的小说网站模板
  • 锡山区住房和城乡建设局网站免费ppt模板下载简约
  • 建设银行 杭州招聘网站建设工程有限公司是干什么的
  • 做网站必须购买空间吗?3点新闻发布
  • 济南集团网站建设流程东莞做网站公司首选
  • 有需要做网站推广找我网站怎么 备案
  • 怎么把网站放到服务器上站长工具seo综合查询外部链接数量
  • 做网站上市的公司开一家公司最低注册资金
  • 仙居谁认识做网站的有哪些好的网站建设
  • 互动广告机网站建设怀集网站建设