• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android5.0开发范例大全 读书笔记(五),android5.0范例

Android5.0开发范例大全 读书笔记(五),android5.0范例

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android5.0,android5.0新特性,android5.0系统下载,android5.0模拟器,android5.0系统手机等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android5.0开发范例大全 读书笔记(五),android5.0范例


(四)实现设备硬件交互与媒体交互

4.6自定义摄像头覆盖层

1.将Camera中的内容实时的绘制到SurfaceView中

  若要自定义拍摄界面,只要重新定义surface的界面即可

  以下展示全部代码

public class PreviewActivity extends AppCompatActivity implements SurfaceHolder.Callback {
    Camera mCamera;
    SurfaceView mPreview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_preview);
        mPreview= (SurfaceView) findViewById(R.id.preview);
        assert mPreview != null;
        mPreview.getHolder().addCallback(this);
        mPreview.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        mCamera=Camera.open();
    }

    @Override
    protected void onPause() {
        super.onPause();
        mCamera.stopPreview();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mCamera.release();
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        try {
            mCamera.setPreviewDisplay(mPreview.getHolder());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        Camera.Parameters params=mCamera.getParameters();
        List<Camera.Size> sizes=params.getSupportedPreviewSizes();
        Camera.Size selected=sizes.get(0);
        params.setPreviewSize(selected.width,selected.height);
        mCamera.setParameters(params);
        mCamera.setDisplayOrientation(90);
        mCamera.startPreview();
    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {

    }
}

2.改变拍摄方向,调用setDisplayOrientation(90)后,拍摄方向方向才会垂直显示

mCamera.setDisplayOrientation(90);

4.12创建倾斜监听器

1.获取系统的SensorManager服务

mSensorManager= (SensorManager) getSystemService(SENSOR_SERVICE);

2.获取加速度感知器

mAccelerometer=mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

3.主方法中的监听,实时改变颜色

    public void onSensorChanged(SensorEvent event) {
        float[] values = event.values;
        float x = values[0] / 10;
        float y = values[1] / 10;
        int scaleFactor;
        if (x > 0) {
            scaleFactor = (int) Math.min(x * 255, 255);
            mRight.setBackgroundColor(Color.TRANSPARENT);
            mLeft.setBackgroundColor(Color.argb(scaleFactor, 255, 0, 0));
        } else {
            scaleFactor = (int) Math.min(Math.abs(x) * 255, 255);
            mRight.setBackgroundColor(Color.argb(scaleFactor, 255, 0, 0));
            mLeft.setBackgroundColor(Color.TRANSPARENT);
        }
        if (y > 0) {
            scaleFactor = (int) Math.min(y * 255, 255);
            mTop.setBackgroundColor(Color.TRANSPARENT);
            mBottom.setBackgroundColor(Color.argb(scaleFactor, 255, 0, 0));
        } else {
            scaleFactor = (int) Math.min(Math.abs(y) * 255, 255);
            mTop.setBackgroundColor(Color.argb(scaleFactor, 255, 0, 0));
            mBottom.setBackgroundColor(Color.TRANSPARENT);
        }
        valueView.setText(String.format("X:%1$1.2f,Y:%2$1.2f,Z:%3$1.2f", values[0], values[1], values[2]));

4.分别在resume和pause中注册和注销

 @Override
    protected void onResume() {
        super.onResume();
        mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_UI);
    }
 @Override
    protected void onPause() {
        super.onPause();
        mSensorManager.unregisterListener(this);
    }

5.传感器这块水很深,真要学的话我发现一本书叫《Android传感器高级编程》,哪天想不开了就去看看吧。

(五)数据持久化

5.1制作首选项界面

1.以前这种用户信息或者系统配置的界面都是自己用组件慢慢实现,原来还有个叫PreferenceActivity的东西

2.首先,样式还是通过XML定义,在res下新建目录xml

  以下是res/xml/settings.xml的完整代码

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <EditTextPreference
        android:defaultValue="Joshua"
        android:key="namePref"
        android:summary="Tell us your name"
        android:title="Name" />
    <CheckBoxPreference
        android:defaultValue="false"
        android:key="morePref"
        android:title="Enable More Settings" />
    <PreferenceScreen
        android:dependency="morePref"
        android:key="moreScreen"
        android:title="More Settings">
        <ListPreference
            android:defaultValue="GRN"
            android:entries="@array/color_names"
            android:entryValues="@array/color_values"
            android:key="colorPref"
            android:summary="Choose your favorite color"
            android:title="Favorite Color" />

        <PreferenceCategory android:title="LOCATION SETTINGS">
            <CheckBoxPreference
                android:defaultValue="true"
                android:key="gpsPref"
                android:summary="use gps to find you"




 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android 5.0(包含5.0以下版本) 获取栈顶应用程序包名,android包名
  • Android5.0开发范例大全 读书笔记(五),android5.0范例
  • Android5.0开发范例大全 读书笔记(六),android5.0范例
  • Android5.0开发范例大全 读书笔记(三),android5.0范例
  • Android5.0开发范例大全 读书笔记(四),android5.0范例
  • android 5.0后对于apk 跑32 64 的逻辑
  • Android 5.0 Settings源码简要分析
  • Android5.0新特性-Material Design
  • Android5.0之Toobar的使用
  • Android 6.0 系统棉花糖新的特性和功能

相关文章

  • 2017-05-26android WebView控件显示网页,androidwebview
  • 2017-05-26安卓开源项目周报0215,安卓开源项目0215
  • 2017-05-26开启我的Android之旅-----记录Android环境搭建遇到的问题,-----android
  • 2017-05-26使用Android studio创建的AIDL编译时找不到自定义类的解决办法,androidaidl
  • 2017-05-26安卓6.0(棉花糖)新特性汇总,安卓6.0
  • 2017-05-26Android中的沉浸式状态栏效果,android沉浸状态栏
  • 2017-05-26GreenDao 数据库:使用Raw文件夹下的数据库文件以及数据库升级,greendaoraw
  • 2017-05-26Android安全专项-利用androguard分析微信
  • 2017-05-26Android 手机卫士--确认密码对话框编写,android确认密码
  • 2017-05-26android 打造炫酷导航栏(仿UC头条)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • iTween基础之功能简介,itween功能简介
    • 客户端和服务端如何使用Token和Session,tokensession
    • Android下文件的压缩和解压(Zip格式)
    • Android 手机卫士--导航界面2,android卫士
    • 六款值得推荐的android(安卓)开源框架简介(转),android安卓
    • android 自定义View圆圈箭头_
    • msm8909+android5.1.1--打开调试(debug)串口
    • 百度地图开发的学习(二)——地图定位,百度地图
    • traceroute和tracert的区别
    • java.lang.NoSuchFieldError: org.apache.http.message.BasicLineFormatter.INSTANCE,apachemessagequeue

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有