网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > android图片缓存,一个地址取不到图片,但是换个地址就没问题,求大神解答
商业源码 服务器教程 2024-01-28 8:10:01

android图片缓存,一个地址取不到图片,但是换个地址就没问题,求大神解答

android图片缓存,一个地址取不到图片,但是换个地址就没问题,求大神解答,第1张

你的log只打印了11131114而1115,1116并没有打印,说明1114后面的代码可能没有执行了,你检查一下是不是?另外,把EntityUtilstoByteArray(entity);这个值也打印出来。如果不为null,说明读取成功,如果为null或者没打印,那就有问题。

1、程序,把Assets中的图像显示出来

try {

BufferedInputStream bis = new BufferedInputStream(getAssets()

open("abmp"));

Bitmap bm = BitmapFactorydecodeStream(bis);

imageView01setImageBitmap(bm);

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

Systemoutprintln("==========file not found======");

}

2、原理:Android中的资源分析

资源是Android应用程序中重要的组成部分。在应用程序中经常会使用字符串、菜单、图像、声音、视频等内容,都可以称之为资源。通过将资源放到与apk文件中与Android应用程序一同发布,在资源文件比较大的情况下,可以通过将资源作为外部文件来使用,我们将分析如何在Android应用程序中存储这些资源。

一、资源的存储

在android中,资源大多都是保存在res目录中,例如布局资源以XML文件的形式保存在res\layout目录中;图像资源保存着res\drawable目录中;菜单资源保存在res\menu目录中。ADT在生成apk文件时,这些目录中的资源都会被编译,然后保存到apk文件中。如果将资源文件放到res\raw目录中,资源将在不编译的情况下放入apk文件中。在程序运行时可以使用InputStream来读取res\raw目录中的资源。

如果使用的资源文件过大,我们可以考虑将资源文件作为外部文件单独发布。Android应用程序会从手机内存或者SD卡读取这些资源文件。

二、资源的种类

从资源文件的类型来划分,我们可以将资源文件划分为XML、图像和其它。以XML文件形式存储的资源可以放在res目录中的不同子目录里,用来表示不同种类的资源;而图像资源会放在res\drawable目录中。除此之外,可以将任意的资源嵌入Androidy应用程序中。比如音频和视频等,一般这些资源放在res\raw目录中。

表1、 Android支持的资源

目录 资源类型 描述

Res\values

XML

保存字符串、颜色、尺寸、类型、主题等资源,可以是任意文件名。对于字符串、颜色、尺寸等信息采用

Key-value形式表示,对于类型、主题等资源,采用其它形式表示

Res\layout

XML

保存布局信息。一个资源文件表示一个View或ViewGroup的布局

Res\menu

XML

保存菜单资源。一个资源文件表示一个菜单(包括子菜单)

Res\anim

XML

保存与动画相关的信息。可以定义帧(frame)动画和补间(tween)动画

Res\xml

XML

在该目录的文件可以是任意类型的XML文件,这些XML文件可以在运行时被读取。

Res\raw

任意类型

在该目录中的文件虽然也会被封装在apk文件中,但不会被编译。在该目录中可以放置任意类型的文件,例如,各种类型的文档、音频、视频文件等

Res\drawable

图像

该目录中的文件可以是多种格式的图像文件,例如,bmp、png、gif、jpg等。在该目录中的图像不需要分辨率非常高,aapt工具会优化这个目录中的图像文件。如果想按字流读取该目录下的图像文件,需要将图像文件放在res\raw目录中。

assets

任意类型

该目录中的资源与res\raw中的资源一样,也不会被编译。但不同的是该目录中的资源文件都不会生出资源ID

三、资源文件的命名

每一个资源文件或资源文件中的key-value对都会在ADT自动生成的R类(在Rjava文件中)中找到相对应的ID其中资源文件名或key-value对中的key就是R类中的java变量名。因此,资源文件名好key的命名首先要符合java变量的命名规则。

除了资源文件和key本身的命名要遵循相应的规则外,多个资源文件和key也要遵循唯一的原则。也就是说,同类资源的文件名或key不能重复。例如,两个表示字符串资源的key不能重复,就算这两个key在不同的XML文件中也不行。

由于ADT在生成ID时并不考虑资源文件的扩展名,因此,在res\drawable、res\raw等目录中不能存在文件名相同,扩展名不同的资源文件。例如在res\drawable目录不能同时放置iconjpg和iconpng文件。

四、资源使用示例

在Android SDK中不仅提供了大量的系统资源,而且还允许开发人员定制自己的资源。不管是系统资源,还是自定义的资源,一般都会将这些资源放在res目录中,然后通过R类中的相应ID来引用这些资源。接下来将针对于XML类资源的使用进行分析。

XML资源实际上就是XML格式的文本文件,这些文件必须放在res\xml目录中。可以通过ResourcesgetXml方法获得处理指定XML文件的XmlResourceParser对象。实际上,XmlResourceParser对象处理XML文件的的过程主要是针对不同的状态点处理相应的代码,比如开始分析文档、开始分析标签、分析标签完成等,XmlResourceParser通过调用next方法不断更新当前的状态。

下面的代码,则是展示如何读取res\xml目录中的XML文件的内容,先在res\xml目录中建立一个xml文件。将AndroidManifestxml文件复制到res\xml目录中,并改名为androidxml。

在准备完XML文件后,在onCreate方法中开始读取XML文件的内容,代码如下:

public void onCreate(Bundle savedInstanceState)

{

superonCreate(savedInstanceState);

setContentView(Rlayoutmain);

TextView textView=(TextView)findViewById(Ridtextview);

StringBuffer sb=new StringBuffer();

// 获得处理android。xml文件的XmlResourceParser对象

XmlResourceParser xml=getResources()getXml(Rxmlandroid);

try

{

//切换到下一个状态,并获得当前状态的类型

int eventType =xmlnext();

while(true)

{

//文档开始状态

if(eventType == XmlPullParserSTART_DOCUMENT)

{

Logd("start_document","start_document");

}

//标签开始状态

else if(eventType ==XmlPullParserSTART_TAG)

{

Logd("start_tag",xmlgetName());

//将标签名称和当前标签的深度(根节点的depth是1,第2层节点的depth是2,类推)

sbappend(xmlgetName()+"(depth:"+xmlgetDepth()" ");

//获得当前标签的属性个数

int count=xmlgetAttributeCount();

//将所有属性的名称和属性值添加到StringBuffer对象中

for(int i=0;i<count;i++)

{

sbappend(xmlgetAttributeName(i)+":

"+xmlgetAttributeValue(i)+"");

}

sbappend(")\n");

}

//标签结束状态

else if(eventType ==XmlPullParserEND_TAG)

{

Logd("end_tag",xmlgetName());

}

//读取标签内容状态

else if(eventType ==XmlPullParserTEXT)

{

Logd("text","text");

}

//文档结束状态

else if(eventType ==XmlPullParserEND_DOCUMENT)

{

Logd("end_document","end_document");

//文档分析结束后,退出while循环

break;

}

//切换到下一个状态,并获得当前状态的类型

eventType =xmlnext();

}

textViewsetText(sbtoString());

}

catch(Exception e) {}

}

二、如果想读入文件

在使用getAssets()open("anhuixml")返回输人流之后,就可以以此为参数,后面的处理跟普通的java的处理相同。

//使用Intent

Intent intent = new Intent(IntentACTION_VIEW);

//Uri mUri = Uriparse("file://" + picFilegetPath());Android30以后最好不要通过该方法,存在一些小Bug

intentsetDataAndType(UrifromFile(picFile), "image/");

startActivity(intent);

应该是没有绝对路径,在手机的/data/app目录里面有个apk文件,名字是你的包名,然后assets目录的文件在这个apk里面,所以应该是在手机中是没有路径的。

再看看别人怎么说的。

实现的功能为从服务器获取数据,在布局页面上显示。由于的个数是不确定的,因此采用在布局页面中定义多个ImageView来显示是不合理的。

(一)首先定义布局

android:id="@+id/id_layout_movie"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

(二)加载显示时获取到布局文件

RelativeLayout rl_Movie = (RelativeLayout) findViewById(Ridid_layout_movie);

(三)依次循环服务器获取的数据,一张一张设置显示的位置

//newWidth为显示的宽度,newHeight为显示的高度

RelativeLayoutLayoutParams lp1 = new RelativeLayoutLayoutParams( newWidth, newHeight);

设置lp1leftMargin和lp1topMargin的值

(四)最后设置rl_MovieaddView(iv, lp1)将加入布局文件中

文件 资源 目录中 放在 状态
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » android图片缓存,一个地址取不到图片,但是换个地址就没问题,求大神解答

商业源码 钻石

分享到:
上一篇
服务器与磁盘阵列如何连接
下一篇
怎么搭建一个可以被外网访问的linux web服务器

相关推荐

徐州经济技术开发区的空间格局

徐州经济技术开发区的空间格局

王者荣耀如何隐身

王者荣耀如何隐身

404是什么意思?

404是什么意思?

怎么建立内网服务器,让员工能在服务器上上传和下载文件?

怎么建立内网服务器,让员工能在服务器上上传和下载文件?

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...