Android 学习琐碎

琐碎:

  1. 注意最高、最低安卓版本,容易导致安装不成功;

  2. 主节点ImageView中直接src指向图标图片会导致程序运行出错;

  3. 引用外部图片注意在手机中大小尺寸;

  4. 将一个属性文字,如: android:text=“用户注册”=》android:text="@id/longin" ;可以左侧灯泡提示按钮下的Extract string resource即可;

  5. RadioGroup和TableLayout都继承LinerLayout;

  6. 占位符 %s表示字符串类型占位符,%d表示整型占位符,%f表示浮点型占位符
    实际使用的时候一般都会使用%n$s,这里的n表示索引,第几个要被替换的字符串,而且String.format这个方法根据索引填充数据;
    例:

        String callerClassName=caller.getClassName();
        callerClassName = callerClassName.substring(callerClassName.lastIndexOf("." + 1));
        tag=String.format(tag,callerClassName,caller.getMethodName(),caller.getLineNumber());
         ```
    
    
  7. & 位运算符:在C语言中 1相当于true,0相当于false。

0&0=0
1&0=0
0&1=0
1&1=1 
  1. 新建资源文件夹 assets :在这里插入图片描述

Gradle相关:

  1. gradle插件和依赖
    gradle在build.gradle(project)文件的dependencies { classpath ‘com.android.tools.build:gradle:3.5.2’}
    其中3.5.2’代表的gradle插件的版本号而不是依赖文件的版本号;
dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'
        
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

依赖文件的版本号在gradle-wrapper.properties(Gradle Version)文件中的distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip
其中distributionUrl属性代表的网上中央仓库地址,地址可以改为本地文件地址做为中央仓库distributionUrl=file:/E:/gradle-5.4.1-all.或者distributionUrl=file:/E:/gradle-5.4.1-all.zip

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

注意:gradle插件和gradle依赖库的版本号有对应关系;并不是相同的的
详情请查看gradle插件和gradle依赖对应表

  1. gradle中央仓库和本地仓库设置
    点击File==>Settings==>Build,Execution,Deployment==>Gradle;
    在这里插入图片描述联网下载的中央仓库资源存放C:\Users\Administrator.gradle文件夹下
    修该中央仓库下载位置:
    添加环境变量GRADLE_USER_HOME,值填写保存位置
    在这里插入图片描述

OKHttps3框架使用:

  1. 在build.gradle中添加依赖
	implementation 'com.squareup.okhttp3:okhttp:3.4.1'			
    implementation 'com.squareup.okio:okio:1.10.0'	
  1. 在AndroidManifest.xml中添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>

后续更新。。。。

PDF加载显示:

在安卓上预览并生成PDF文件,没有什么好的框架用的原生的itextpdf-5.5.10.jar,将一张张图片组合生成PDF文件,
最开始是使用ViewPager控件显示,在生成前将图片一张一张显示,坏处是无法进行其他操作,且量大的话加载比较缓慢。
后来使用PDFview提示已经过期,根据连接找到PDFviewer,试运行总是不出画面,位置原因,最后根据网上推荐使用了PDF.js 根据提示下载,我已经上传资源,
推荐去官网下载还能看一下示例:
官网下载连接:http://mozilla.github.io/pdf.js/getting_started/#download
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200821091535674.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdocndvcms=,size_16,color_FFFFFF,t_70#pic_center)
代码部分,我是直接生成后加载本地文件所以就不写加载网络资源的了,网上很多,下面解压后文件存放位置和结构:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020082109434456.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdocndvcms=,size_16,color_FFFFFF,t_70#pic_center)

```java
 WebSettings webSettings = pdfView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setAllowUniversalAccessFromFileURLs(true);
        webSettings.setDomStorageEnabled(true);
        try {
            pdfView.loadUrl("file:///android_asset/pdf_js/web/viewer.html?file=file://"+path);
        } catch (Exception e) {
            e.printStackTrace();
        }
要注意的是读取本地文件一定要先开启读取权限,不然就等着报文件找到异常吧,上面几个webSettings.set主要为了使用js脚本,根据文件路径加载文件和访问存储设置;
根据不同需求可以自定义viewer.html文件,包括里面的事件方法:

先更这些,有空再更。。。。

声音加载:

安卓的声音加载,看了看网上主要是两个:一个使用用MediaPlayer另一个是SoundPool;

MediaPlayer适用于频率不高的文件比如歌曲;
SoundPool更使用与使用频繁场景,比如声效,报警;
code:
 MediaPlayer  player = MediaPlayer.create(this, R.raw.beep);
        try {
            player.prepare();// 同步
        } catch (IOException e) {
            e.printStackTrace();
        }
        player.start();
        //循环播放
//        player.setLooping(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            soundPool = new SoundPool.Builder()
                    .setMaxStreams(10)
                    .build();
        } else {
            soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
        }

        sourceId = soundPool.load(this, R.raw.beep_4, 0);
        try {
            Thread.sleep(500);   //加载资源缓冲期
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        soundPool.play(sourceId, 1, 1, 0, 0, 1);
值得注意的就是soundPool 有时候会没有声音,那是因为声音加载还未完成,所以要预先加载资源文件,使用完之后记得释放soundPool资源不然有可能会导致一直播放,无法关闭(软件关闭之前各个页面都会播放);

soundPool资源大小最好不要大过1m,播放可以根据资源id进行暂停,循环,速率进行设置,这里就不过多解释,直接看参数前的提示就能看到;

有空继续。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值