文件管理 · 2022年9月9日

android获取图片文件|请问android怎样通过json数据从服务器获取图片

㈠ Android 在知道文件路径以及文件名称读取SD卡上的图片该怎么做

String path = Environment.getExternalStorageDirectory() ; //获得SDCard目录 Bitmap bmpDefaultPic;ImageView iv = (ImageView) contentView.findViewById(R.id.x);if(bmpDefaultPic==null)bmpDefaultPic = BitmapFactory.decodeFile(path+"xx.jpg",null);iv.setImageBitmap(bmpDefaultPic);R.id.x 代表你的ImageViewxx.jpg 你的图片

㈡ Android如何获取网络图片

android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:

直接获取:(容易:ANR,不建议)

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);Drawabledrawable=loadImageFromNetwork(IMAGE_URL);mImageView.setImageDrawable(drawable);

2. 后台线程获取url图片:

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);newThread(newRunnable(){Drawabledrawable=loadImageFromNetwork(IMAGE_URL);@Overridepublicvoidrun(){//post()特别关键,就是到UI主线程去更新图片mImageView.post(newRunnable(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubmImageView.setImageDrawable(drawable);}});}}).start();

3.AsyncTask获取url图片

mImageView=(ImageView)this.findViewById(R.id.imageThreadConcept);newDownloadImageTask().execute(IMAGE_URL);<String,Void,Drawable>{(String…urls){returnloadImageFromNetwork(urls[0]);}protectedvoidonPostExecute(Drawableresult){mImageView.setImageDrawable(result);}}

㈢ Android如何从服务器获取图片

直接获取bitmap对象

//传输网络图片

publicBitmapgetPic(StringuriPic){

URLimageUrl=null;

Bitmapbitmap=null;

try{

imageUrl=newURL(uriPic);

}catch(MalformedURLExceptione){

e.printStackTrace();

}

try{

HttpURLConnectionconn=(HttpURLConnection)imageUrl

.openConnection();

conn.connect();

InputStreamis=conn.getInputStream();

bitmap=BitmapFactory.decodeStream(is);

is.close();

}catch(IOExceptione){

e.printStackTrace();

}

returnbitmap;

}

㈣ 请问android怎样通过json数据从服务器获取图片

android里面,通过json数据是不会直接返回图片的,只会返回图片的url地址。 步骤: 1,通过专解析json数据,获取到图片的属地址。 2,通过图片的地址,再一次的请求网络(用异步任务或者hangdler里面请求网络:比如:URL url = new URL(urlStr);HttpURLConnection conn = (HttpURLConnection) url.openConnection();BufferedInputStream is = new BufferedInputStream(conn.getInputStream());) 3 通过BitmapFactory.decodeStream(里面的参数是一个字节流),该方法返回的是一个bitmap ,直接用imageview.setimagebitmap()就能展示图片了。说明: 在BitmapFactory.decodeStream这里返回的bitmap可以做进一步的优化,比如二次采样,把获取的bitmap存sd卡等等。。

㈤ android编程:读取指定文件夹下所有png图片

1、程序,把Assets中的图像显示出来try { BufferedInputStream bis = new BufferedInputStream(getAssets() .open("a.bmp")); Bitmap bm = BitmapFactory.decodeStream(bis); imageView01.setImageBitmap(bm); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("==========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类(在R.java文件中)中找到相对应的ID.其中资源文件名或key-value对中的key就是R类中的java变量名。因此,资源文件名好key的命名首先要符合java变量的命名规则。除了资源文件和key本身的命名要遵循相应的规则外,多个资源文件和key也要遵循唯一的原则。也就是说,同类资源的文件名或key不能重复。例如,两个表示字符串资源的key不能重复,就算这两个key在不同的XML文件中也不行。由于ADT在生成ID时并不考虑资源文件的扩展名,因此,在res\drawable、res\raw等目录中不能存在文件名相同,扩展名不同的资源文件。例如在res\drawable目录不能同时放置icon.jpg和icon.png文件。四、资源使用示例在Android SDK中不仅提供了大量的系统资源,而且还允许开发人员定制自己的资源。不管是系统资源,还是自定义的资源,一般都会将这些资源放在res目录中,然后通过R类中的相应ID来引用这些资源。接下来将针对于XML类资源的使用进行分析。XML资源实际上就是XML格式的文本文件,这些文件必须放在res\xml目录中。可以通过Resources.getXml方法获得处理指定XML文件的XmlResourceParser对象。实际上,XmlResourceParser对象处理XML文件的的过程主要是针对不同的状态点处理相应的代码,比如开始分析文档、开始分析标签、分析标签完成等,XmlResourceParser通过调用next方法不断更新当前的状态。下面的代码,则是展示如何读取res\xml目录中的XML文件的内容,先在res\xml目录中建立一个xml文件。将AndroidManifest.xml文件复制到res\xml目录中,并改名为android.xml。在准备完XML文件后,在onCreate方法中开始读取XML文件的内容,代码如下:public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);TextView textView=(TextView)findViewById(R.id.textview);StringBuffer sb=new StringBuffer();// 获得处理android。xml文件的XmlResourceParser对象XmlResourceParser xml=getResources().getXml(R.xml.android);try{ //切换到下一个状态,并获得当前状态的类型 int eventType =xml.next(); while(true) { //文档开始状态 if(eventType == XmlPullParser.START_DOCUMENT) { Log.d("start_document","start_document"); } //标签开始状态 else if(eventType ==XmlPullParser.START_TAG) { Log.d("start_tag",xml.getName()); //将标签名称和当前标签的深度(根节点的depth是1,第2层节点的depth是2,类推) sb.append(xml.getName()+"(depth:"+xml.getDepth()" "); //获得当前标签的属性个数 int count=xml.getAttributeCount(); //将所有属性的名称和属性值添加到StringBuffer对象中 for(int i=0;i<count;i++) { sb.append(xml.getAttributeName(i)+": "+xml.getAttributeValue(i)+""); } sb.append(")\n"); } //标签结束状态 else if(eventType ==XmlPullParser.END_TAG) { Log.d("end_tag",xml.getName()); } //读取标签内容状态 else if(eventType ==XmlPullParser.TEXT) { Log.d("text","text"); } //文档结束状态 else if(eventType ==XmlPullParser.END_DOCUMENT) { Log.d("end_document","end_document"); //文档分析结束后,退出while循环 break; }//切换到下一个状态,并获得当前状态的类型 eventType =xml.next(); } textView.setText(sb.toString());} catch(Exception e) {} } 二、如果想读入文件在使用getAssets().open("anhui.xml")返回输人流之后,就可以以此为参数,后面的处理跟普通的java的处理相同。

㈥ Android中 怎么获取apk中的素材图片

有些APK程序里的图标、图片很漂亮,在使用程序时你可能会想,如果能把这些漂亮的图标、图片提取出来就好了,其实这是可以办到的,请看教程。

更多例子请参考android学习手册,里面有源码。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

本教程以“电影超人”的APK安装包为例,其它APK程序的提取方法基本相同。以下内容需要在电脑中进行操作。

1.用压缩软件打开APK

APK程序其实就是个ZIP压缩包,想提取其中的资源就得先用解压缩软件将其打开,如图我们在APK安装包上右键、打开方式、选择压缩软件,我这里选择的是RAR,如果你安装的是其它的解压缩软件,选择它即可。如果你以前没有用压缩软件打开过APK文件,可以点击选择默认程序然后找到解压缩软件进行打开。

2.解压图片文件夹

用解压缩软件打开APK程序后,如图里面有几个文件夹,我们拖出“res”这个文件,一般APK程序的图片资源都在这个文件中。

3.寻找需要的图片

把“res”文件夹解压后我们打开可以看到里面的几个文件夹一般程序图标等图片都在“drawable-hdpi”这个文件夹,打开看看,是不是有自己需要的东西,如果没有再到其它的几个文件夹中查找一下。APK文件里的图片都是png格式的,可直接查看,这点比水果要厚道了许多。

4.反编译查找资源

也许大家发现了,解压后“电影超人”里大量的电影图片并没有看到,那是因为APK程序制作时把它们编译到了“resources.arsc”文件里我们想提取的话把APK文件进行反编译就可以了。具体反编译方法这里就不讲解了,请自行网络。

㈦ android如何获取有图片的文件夹列表

循环递归方式目录一层一层的找这个文件夹有没有图片文件(扩展名为jpg.gif)。然后可以拿到这个文件夹了。小demo一窍不通其实这块没有什么啊你都可以做Android开发这块只是JavaIO包里的内容LIstView你都了解我觉得这个你不是问题

㈧ Android如何读取资源文件里的图片到bitmap里面

方式:以R文件的方式

路径:假设 res/drawable下有 test.jpg文件

Bitmap bitmap=BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test)