android图像绘制--获取本地图片或拍照图片代码
从SD卡中获取图片资源,或者拍一张新的图片。
注释:拍照获取的话,可以指定图片的保存地址,在此不说明。
从SD卡中获取图片资源,或者拍一张新的图片。
先贴代码
获取图片:
注释:拍照获取的话,可以指定图片的保存地址,在此不说明。
代码如下 | 复制代码 |
CharSequence[] items = {"相册", "相机"}; new AlertDialog.Builder(this) .setTitle("选择图片来源") .setItems(items, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { if( which == SELECT_PICTURE ){ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent。CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(Intent。createChooser(intent, "选择图片"), SELECT_PICTURE); }else{ Intent intent = new Intent(MediaStore。ACTION_IMAGE_CAPTURE); startActivityForResult(intent, SELECT_CAMER); } } }) .create().show(); CharSequence[] items = {"相册", "相机"}; new AlertDialog.Builder(this) .setTitle("选择图片来源") .setItems(items, new OnClickListener() { public void onClick(DialogInterface dialog, int which) { if( which == SELECT_PICTURE ){ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("image/*"); startActivityForResult(Intent.createChooser(intent, "选择图片"), SELECT_PICTURE); }else{ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, SELECT_CAMER); } } }) .create().show(); |
处理图片,方法一,直接处理返回图片:
注释:
1、网上有说明,直接处理返回的图片是被系统压缩过的,不过自己在测试的过程并没有区别;
2、如果用户不断的重新获取图片的话,必须把现在的Bmp内存释放,否则会报错! bmp.recycle()。
代码如下 | 复制代码 |
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
处理图片,方法二,获得图片的地址再处理:
代码如下 | 复制代码 |
protected void onActivityResult(int requestCode, int resultCode, Intent data) { |
在Android平台下开发处理图片裁剪的应用,如果感觉实现的逻辑比较麻烦,比如说需要写类此Win32下的橡皮筋类 CRectTracker来设置裁剪区域,这里给大家一个最简单可靠的方法,通过下面的Intent调用系统的Camera程序的裁剪功能实现图片修剪。
java
代码如下 | 复制代码 |
Intent intent = new Intent("com.android.camera.action.CROP"); intent.setClassName("com.android.camera", "com.android.camera.CropImage"); |
不过这里提醒大家可能会出现无法找到Activity的android.content.ActivityNotFoundException异常,这是由于Android内部的gallery和camera 都有处理,可以尝试另一种URI,com.android.gallery的com.android.camera.CropImage,在setClassName时,具体的代码为
java
代码如下 | 复制代码 |
final Intent intent = new Intent("com.android.camera.action.CROP"); |
xml
代码如下 | 复制代码 |
<?xml version="1.0" encoding="utf-8"?> |
主文件:
代码如下 | 复制代码 |
public class picBarActivity extends Activity{ |
View文件:
代码如下 | 复制代码 |
|
代码如下 | 复制代码 |
/** /** |
ImageView 无法setImageBitmap,不显示图片解决办法
以下是handler
代码如下 | 复制代码 |
handler.post(new Runnable() { @Override public void run() { playAdver(); } }); |
以下是playAdver()方法,主要是显示图片
代码如下 | 复制代码 |
private void playAdver() { |
执行了adverImage.setImageBitmap(BitmapFactory.decodeFile(fileName));但是在真机上不现实图片,为什么?
因为我是在主线程里面执行的,故不会显示,以解决
Android系统调试工具——ADB
Android Debug Bridge是个多功能的工具,可以管理设备上的执行状况。
即ADB是管理模拟器的一个工具。
包括下列三个部分:
客户端程序(Client):在开发环境上运行,也可以通过命令行模式shell接口执行adb命令来操作客户端程序。其他Android工具如开发工具ADT或调试监控系统DDMS都可以创建一个adb客户端。
服务器程序(Server):在开发环境的后台运行,服务器程序负责管理介于客户端程序和守护进程程序的通信沟通。
守护进程程序(Daemon):在实际硬件设备或虚拟设备的后台运行。
adb命令位于安装路径下的platform-tools路径中,把这个路径加在环境变量PATH中就可以在其他目录下使用adb命令。
adb命令的标准格式
adb [-d|-e|-s <serialNumber>] <command>
这是adb命令的标准格式,当你正在执行的仿真器有多个时,要加上仿真器序号来区别:
使用“-s <serialNumber>”选项参数;
使用“-d”选项参数,adb命令只会送到连接USB的实际硬设备;
使用“-e”选项参数,adb命令只会送到Android仿真器。
后面<command>是必要的命令。
安装与卸载应用程序apk文件
安装:
adb [-s <serialNumber>] install <path_to_apk>
范例:安装helloWorld.apk到Android仿真器序列号是5556的虚拟设备上:
adb –s emulator-5556 install helloWorld.apk
adb install helloWorld.apk
使用adb install安装apk组件程序时,安装在Android仿真器上的apk组件会被放在Android系统目录的/data/app下,这个目录下的应用程序文件名就是写程序时设置的Package name
卸载:
adb [-s <serialNumber>] uninstall <package>
范例:
adb –s emulator-5556 uninstall com.example.android.helloWorld.apk
adb uninstall com.example.android.helloWorld.apk
注意安装是接apk文件路径名称,而移除是接package名称。
手动删除:
adb shell
cd data/app
rm app.apk
Android操作系统命令行模式,使用shell命令
执行
adb shell
可以进入Android操作系统命令行模式,如此一来你就可以管理和查询Android操作系统的目录和执行相关的命令。
因为Android操作系统是Linux操作系统的一种,所以shell命令和Linux操作系统是相同的,例如ls命令显示文件目录,cd命令更改文件目录,mkdir命令创建目录,rmdir命令删除目录,rm命令删除文件,mv命令移动文件。
进入Android操作系统命令行模式后,要离开回到控制台窗口,可以使用exit命令。
上传文件到/sdcard或自/sdcard下载文件(复制文件)
上传,即从系统复制文件到设备:
adb push <local> <remote>
如:adb push d:test.txt /sdcard/
下载,即从设备复制文件到系统:
adb pull <remote> <local>
如:adb pull /sdcard/test.txt d:/
发布端口
可以设置任意的端口号,作为主机向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
搜索/等待模拟器、设备实例
取得当前运行的模拟器,设备的实例列表及每个实例的状态|等待正在运行的设备。
adb devices
adb wait-for-device
查看Bug报告
adb bugreport
记录无线通讯日志
adb shell
logcat –b radio
获取设备ID和序列号
adb get-product
adb get-serialno
访问数据库SQLite3
adb shell
sqlite3
相关文章
使用PHP+JavaScript将HTML页面转换为图片的实例分享
这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19- 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- 下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
- 获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13- 这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
- 主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
- Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 如果我们的项目需要做来电及短信的功能,那么我们就得在Android模拟器开发这些功能,本来就来告诉我们如何在Android模拟器上模拟来电及来短信的功能。 在Android模拟...2016-09-20
- jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
- 夜神android模拟器如何设置代理呢?对于这个问题其实操作起来是非常的简单,下面小编来为各位详细介绍夜神android模拟器设置代理的方法,希望例子能够帮助到各位。 app...2016-09-20
- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31