android使用(Android 使用系统相机拍照和读取相册照片)
本文目录
Android 使用系统相机拍照和读取相册照片
1.拍照 (对于7.0以上的版本,不在允许直接访问uri) ` 若不指定输出路径intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity)); 在onActivityResult()中,通过 ` 可以拿到uri,但获得的图片是被压缩过的。若指定intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);输出路径,则此处的intent为null,但可以使用我们存的uri读取照片,此时的照片没有被压缩。 2.从相册中读取照片, 方法: ` ` 即使设置 intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity));输出路径,仍然不能从此路径中读取,只能在onActivityForResult()中通过event.uri = intent.getData();方式获得图片uri。 此种现象也好理解,拍照时产生新的图片,自然可根据设置的uri进行图片保存,而读取相册时,图片已经在目录中不能转移到自己设定的uri中。 Androidmanifest.xml中 ` 在 res/xml/provider_paths.xml ` 《?xml version="1.0" encoding="utf-8"?》 《paths》 《external-path name="JDTobs" path=""/》 《files-path name="name" path="path" /》 《cache-path name="name" path="path" /》 《external-path name="name" path="path" /》 《external-files-path name="name" path="path" /》 《external-cache-path name="name" path="path" /》 《/paths》 ` 读取uri
android开发工具怎么使用
Android SDK中有一个工具HierarchyView.bat,可以分析出模拟器中运行程序的界面设计层次;我们可以用此工具来分析自己的应用布局是否有优化的空间,也可以分析别人优秀的布局进行借鉴和学习。 使用HierarchyView.bat 非常简单: 1.启动模拟器; 2.运行要分析的程序; 3.在SDK目录下(如D:\AndroidHome\android-sdk-windows\tools)打开HierarchyView.bat; \ 4.选中要分析的程序名,点击Load View Hierarchy; \ 5.完成以上几步后,就会出现树形的布局结构图;现在就可以看到整个界面的布局层次以及使用的什么组件 。
如何开始使用Android应用程序
从一个Activity(界面)跳转到另一个Activity时,需要使用到Intent来启动Activity。Intent在android中的定义为:public Intent (Context packageContext , Class《?》 cls);在Intent使用时,分为显式调用和隐式调用:显式调用---直接调用Activity的Class类例,Activity1调用Activity2Intent intent = new Intent(this , Activity2.class);startActivity(intent);隐式调用---通过调用另一个Activity的action 来启动另一个ActivityActivity1隐式调用Activity2时需要在AndroidManifest.xml文件中配置Activity2的action和category,具体添加下面的代码到Activity2的定义中《intent-filter》《action android:name="myaction2"/》《category android:name="android.intent.category.DEFAULT"/》《category android:name="mycategory" /》《/intent-filter》接着同样用intent来启动Activity,代码如下:Intent intent = new Intent("myaction2");startActivity(intent);这样就可以启动Activity2注:intent隐式调用Activity时会遇到多个Activity的intent-filter中的action和category相同时,android会先弹一个选择界面的窗口,显式要启动的Activity列表,根据用户选择来启动Activity,如Activity2和Activity3的action和category相同《Activity android:name=".Activity2"》《intent-filter》《action android:name="myaction2"/》《category android:name="android.intent.category.DEFAULT"/》《category android:name="myCategory" /》《/intent-filter》《/Activity》《Activity android:name=".Activity3"》《intent-filter》
Android如何使用文件进行数据存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中 具体的实现过程与在J SE环境中保存数据到文件中是一样的
public class FileActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
;
FileOutputStream outStream = this openFileOutput( ;itcast txt ; Context MODE_PRIVATE);
outStream write( ;传智播客 ; getBytes());
outStream close();
}
}
openFileOutput()方法的第一参数用于指定文件名称 不能包含路径分隔符 / 如果文件不存在 Android 会自动创建它 创建的文件保存在/data/data/《package name》/files目录 如 /data/data/cn itcast action/files/itcast txt 通过点击Eclipse菜单 Window Show View Other 在对话窗口中展开android文件夹 选择下面的File Explorer视图 然后在File Explorer视图中展开/data/data/《package name》/files目录就可以看到该文件
openFileOutput()方法的第二参数用于指定操作模式 有四种模式 分别为 Context MODE_PRIVATE ?=?
Context MODE_APPEND ?=?
Context MODE_WORLD_READABLE =?
Context MODE_WORLD_WRITEABLE =?
Context MODE_PRIVATE 为默认操作模式 代表该文件是私有数据 只能被应用本身访问 在该模式下 写入的内容会覆盖原文件的内容 如果想把新写入的内容追加到原文件中 可以使用Context MODE_APPEND
Context MODE_APPEND 模式会检查文件是否存在 存在就往文件追加内容 否则就创建新文件
Context MODE_WORLD_READABLE和Context MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件
MODE_WORLD_READABLE 表示当前文件可以被其他应用读取 MODE_WORLD_WRITEABLE 表示当前文件可以被其他应用写入
如果希望文件被其他应用读和写 可以传入
openFileOutput( ;itcast txt ; Context MODE_WORLD_READABLE + Context MODE_WORLD_WRITEABLE);
lishixinzhi/Article/program/yd/201404/30438
如何在Android中使用listview
创建继承BaseAdapter并实现其抽象方法的类MyListViewAdapter说明下面的讲解中,只创建自定义的适配器类,如何使用请参考android中常用控件的使用之ListView1.创建类MyListViewAdapter创建类MyListViewAdapter,该类继承BaseAdapter,并实现其抽象方法:1234 int getCount();Object getItem(int position);long getItemId(int position);View getView(int position,View convertView,ViewGroup parent); getCount需要返回有多少个item,也就是说最会在listview中展示这么多行getItem需要返回参数position位置的数据getItemId返回position就行了2.给MyListViewAdapter类添加成员变量和构造方法两个成员变量12 List《String》 list;Context context; list表示要显示的数据,context变量在生成View对象时需要用到构造方法:构造方法是为了给两个成员变量赋值1234 public MyListViewAdapter(List《String》 list , Context context) { this.list = list; this.context = context;} 3.给getCount,getItem,getItemId方法添加代码getCount需要返回有多少个item,也就是说最会在listview中展示这么多行,所以返回list.sizegetItem需要返回参数position位置的数据,也就是list中第position项的值list.get(position)getItemId返回position就行了1234567891011121314 @Overridepublic int getCount() { return list.size();} @Overridepublic Object getItem(int position) { return list.get(position);} @Overridepublic long getItemId(int position) { return position;} 4.给getView方法添加代码getView方法是返回位置为position的View对象,第二个参数convertView考虑到资源重用问题,在上下滑动的过程中,需要显示某项的时候才会调用getView方法,而如果有某项被隐藏不显示,就会把不显示那一行的View作为convertView参数传入,如果没有某项被隐藏,convertView值为null。可以通过下面代码中的if(convertView!=null)中的输出来看哪一行被隐藏了。1234567891011121314151617181920212223 @Overridepublic View getView(int position, View convertView, ViewGroup parent) { System.out.println("调用getView方法,显示position="+position+"项"); if(convertView!=null){ TextView t = (TextView) convertView.findViewById(R.id.firstTextView); System.out.println(t.getText()); }else{ LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = layoutInflater.inflate(R.layout.item_mylistviewadapter, null); } TextView t = (TextView)(convertView.findViewById(R.id.firstTextView)); t.setText(list.get(position)); if(position%2==0) { t.setBackgroundColor(Color.WHITE);} else{ t.setBackgroundColor(Color.GRAY); } return convertView;} 补充:通过xml生成View对象通过Context对象生成一个LayoutInflater对象调用LayoutInflater对象的inflate方法生成控件对象,inflate方法的第一个参数为xml文件,第二个参数一般为null。返回值为该xml文件最外层的标签对象。12 LayoutInflater layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);LinearLayout convertView =(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie源代码下载pan.baidu.com/s/1ntuQDdv
更多文章:
sublime官方网站(sublime text3的用户设置)
2024年7月2日 16:48
aspnet期末考试题(哪位小仙女小仙男有《高级程序设计语言c#》期末复习资料啊,跪求(ω))
2024年7月4日 10:38
前端图片居中怎么设置(web前端,一张图片的实际尺寸为1334×662,屏幕分辨率比这张图片还高,前端如何设计铺满整个屏幕的)
2024年7月13日 00:28
hashcode(Java源码hashmap,当key的hashcode相同的时候,为什么会把value加到链表里)
2024年6月14日 13:42
dosbox汇编使用教程(怎么用dosbox编译,连接,执行汇编语言)
2024年10月7日 12:30
安卓开发为什么不火了(安卓是不是不行了听说现在安卓要淘汰了,要被微软打下去了是不是真的啊安卓怎么才火了这么点时间)
2024年8月11日 12:57
access数据库下载好了找不到(为什么打开ACCESS软件后出现“找不到指定的数据库”)
2024年6月26日 22:28
matlab算复杂方程组(matlab计算含有三角函数的复杂方程组计算不出来)
2024年7月10日 20:38
compile中文是什么意思(英语Compiled怎么翻译)
2024年6月4日 20:49