Android AlertDialog 某些机型出现不居中问题

机型: 小米手机 Mi 8 SE
系统: MIUI 12 Android 10

androidx和 android AlertDialog 都是一样的效果, 显示垂直居中靠右,
但是 oppo Color OS V7.1 (Android 10)显示正常 ,估计手机厂商修改AOSP改出问题了

%title插图%num

修改:

重设dialog window 的属性

alertDialog.show()
//放在show()之后,不然有些属性是没有效果的,比如height和width
alertDialog.window?.run {
attributes = attributes.apply {
width = (windowManager.defaultDisplay.width * 0.95).toInt()
gravity = Gravity.CENTER
}
}

修改后效果

%title插图%num
参考

如何将AndroidStudio或Idea软件界面语言系统设置成中文

是不是有时选择功能囿于英文操作不便,这不是在锻炼英文水平!这是在给生产力打折扣
在这里插入图片描述
舒适的操作界面能够让我们快速构造自己想要的操作,那么…


方法

  1. Ctrl+Alt+S打开设置
    在这里插入图片描述
  2. 选择Plugins
    在这里插入图片描述
  3. 输入Chinese,然后找到Chinese (Simplified) Language ,点击install进行安装
    在这里插入图片描述
  4. *后重启IDEA或AndroidStudio,搞定!!!

Android Studio汉化教程详解

先去AS的官网下载一个:AS官网

1、下载汉化包:AS汉化包下载地址

2、找到AS安装目录,然后找到lib文件夹

%title插图%num

lib文件夹里面有一个resources_en的东东

%title插图%num

将该文件复制到桌面,并改名为resources_cn,然后用解压工具打开这个文件,里面有这些东东

%title插图%num

3、用压缩软件打开我们刚刚下载好的汉化包,千万别解压!!!,在zh_CN有这些东西,ctrl+A全选,然后复制

%title插图%num
4、用压缩工具打开刚刚复制到桌面并重命名为esources_cn的那个文件,里面有一个message的文件夹,将我们全选的东西复制到这个文件夹里面,然后全部替换,ok之后重启AS,看看效果:大功告成

%title插图%num %title插图%num

Android Studio汉化教程

是不是有很多小伙伴安装使用AS的时候因为英文感到费力。想采用中文的内容。因此就不得不用汉化。

本人亲测汉化过程。首先查看下AndroidStudio中的的版本信息。

打开AS进入主界面。选择工具栏中的help –> about。能够查看AS的版本。下载

下载对应版本的汉化包。链接:https://pan.baidu.com/s/13txkfOA-mcJ_X12JLfyGSw
提取码:1234
%title插图%num

下载完成之后会得到相对应的jar包。

%title插图%num

无需修改jar包名称。直接复制到AS安装文件的lib文件中。不知道AS安装路径的话,可以通过点击桌面的AS图标–>点击鼠标右键–>点击属性   就可以查看图标的安装位置。

%title插图%num %title插图%num

重新启动AS。即可看到汉化后的效果。

注意:

一般软件小版本更新时,汉化包是通用的,可以保留继续使用
Android Studio 更新时会自动删除汉化包,请先备份汉化包或更新后重新下载。
理论上不可能汉化失败,如果汉化不生效,请认真学习下方的常见问题,仍有问题可反馈
不需要重命名,不需要解压,不需要删除任何 jar 包,不会覆盖任何 jar 包
软件安装路径的 lib 目录例     D:\AS安装文件\lib
该目录下应该有一个文件: resources_en.jar 如果没有,说明没有找对路径
MAC 用户请在 Finder > 应用程序 中找到软件,右键 > 显示包内容
汉化后如果需要还原,删除汉化包即可

Android PDF开发:android-pdfview

Android PDF开发:android-pdfview

Android平台自身没有直接可以阅读和处理pdf的方案,在github上面有一个第三方开源的pdf开发SDK,其主页地址是:

https://github.com/JoanZapata/android-pdfview

android-pdfview使用比较简单,关键的地方是PDFView,将PDFView作为像Android的ImageView或者TextView一样写进xml布局文件:
<FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent” >

<com.joanzapata.pdfview.PDFView
android:id=”@+id/pdfView”
android:layout_width=”match_parent”
android:layout_height=”match_parent” />
</FrameLayout>

然后在Java上层代码直接加载pdf文件资源装载进去即可:
package zhangphil.pdfview;

import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnPageChangeListener;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

PDFView pdfView = (PDFView) findViewById(R.id.pdfView);

// 在我这个测试例子中,事先准备一个叫做sample.pdf的pdf大文件放到assets目录下。
// 从assets文件目录下读取名为 sample.pdf的文件,缺省把该pdf定位到*页。
pdfView.fromAsset(“sample.pdf”).defaultPage(1).onPageChange(new OnPageChangeListener() {

@Override
public void onPageChanged(int page, int pageCount) {
// 当用户在翻页时候将回调。
Toast.makeText(getApplicationContext(), page + ” / ” + pageCount, Toast.LENGTH_SHORT).show();
}
}).load();
}
}

我把该第三方开源库整理成Eclipse下可用的lib,上传到github上,地址链接:
https://github.com/zhangphil/android-pdfview-lib-for-eclipse
使用时候,下载该lib,导入到eclipse作为lib,然后在项目中直接引用即可。

Android控制文字水平间距android:letterSpacing

Android控制文字水平间距android:letterSpacing

附录文章1实现的是Android的文字在水平方向的缩放,然而不是水平方向的文字间距。如果要想实现Android TextView之类的文字保持间距,那么需要设置android:letterSpacing,android:letterSpacing的值是一个浮点数,为标准字体的倍数作为间距。写一个小demo示例。
Xml布局代码:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:orientation=”vertical”>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”Zhang Phil CSDN 默认” />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:letterSpacing=”0.1″
android:text=”Zhang Phil CSDN 0.1″ />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:letterSpacing=”0.2″
android:text=”Zhang Phil CSDN 0.2″ />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:letterSpacing=”0.3″
android:text=”Zhang Phil CSDN 0.3″ />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:letterSpacing=”0.4″
android:text=”Zhang Phil CSDN 0.4″ />

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:letterSpacing=”0.5″
android:text=”Zhang Phil CSDN 0.5″ />

</LinearLayout>

代码运行结果:

%title插图%num

mac上配置java开发环境

刚在mac上配置了java开发环境,多数步骤是参考链接做下来的,记录下来供参考。

1.下载jdk
我mac os 的版本是 :10.13.6;

打开终端,输入 java -version ,回车显示如下:

%title插图%num

点 更多信息 进到 https://www.oracle.com/technetwork/java/javase/downloads/index.html 的界面

点击download,跳转到jdk的下载,选择对应的*新版本下载即可,我下的是

jdk-12_osx-x64_bin.dmg

2.安装
jdk-12_osx-x64_bin.dmg 下载完,点击安装即可。在终端输入 java -version 命令查看是否安装成功,如下:

%title插图%num

java -version

java version “12” 2019-03-19
Java(TM) SE Runtime Environment (build 12+33)
Java HotSpot(TM) 64-Bit Server VM (build 12+33, mixed mode, sharing)
说明安装成功了。

可以进到目录 /Library/Java/JavaVirtualMachines/ 查看jdk安装的的位置,方法:打开Finder,快捷键 “Command + Shift + G”,输入 /Library/Java/JavaVirtualMachines/ ,回车就能看到安装的jdk,如下图所示:

所以jdk的目录为:

/Library/Java/JavaVirtualMachines/jdk-12.jdk

这个目录后面会用到

3.配置
在终端输入

sudo vim /etc/profile
然后输入自己的电脑密码,然后就进入了profile文件,在文件内容末尾添加JAVA_HOME路径(切换英文输入法,键入“i”,进入插入模式),如下所示:

JAVA_HOME=”/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home/”

CLASS_PATH=”$JAVA_HOME/lib”

PATH=”.:$PATH:$JAVA_HOME/bin”
拼接起来,如下所示:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi

if [ “${BASH-no}” != “no” ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi

JAVA_HOME=”/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home/”

CLASS_PATH=”$JAVA_HOME/lib”

PATH=”.:$PATH:$JAVA_HOME/bin”
~
~
~
~
~
~
~
“/etc/profile” [readonly] 16L, 323C
确认添加完毕,按esc退出插入模式,英文输入发下键入“:wq!”保存并退出profile文件

重启终端,重新打开输入如下所示:

builderdeMacBook-Pro:~ builder$ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk-12.jdk/Contents/Home/
这个路径出来了,说明配置成功了

4.测试
新建一个文件,名为Hello.java,注意是.java为后缀,在文件里,写下如下java代码:

class Hello {
public static void main(String[] args) {
System.out.println(“Helllo”);
}
}
在终端里cd到Hello.java文件所在目录,然后在终端输入以下命令:

javac Hello.java
然后就会在Hello.java文件所在目录,生成class文件:Hello.class

再在终端输入以下命令:

java Hello
如果出来一句打印的 :Helllo

说明运行正常,我们的java环境已经配置好了

开发 IOS app 不通过 苹果商店安装的几种方式

开发App,苹果App少不了。不过,苹果商店的审核确实太烦,更新也费劲。

一、IOS App不通过苹果商店,有几种办法可以完成安装?

不通过苹果商店安装苹果app(即ipa)的方法较为复杂;如果是非越狱的手机,首先需要注意以下条件:

  1. 如果是299美元的企业证书打包的ipa,那没有任何限制。注意:企业证书是不能发布到苹果市场的,只有99美元那个可以。
  2. 如果是99美元的个人/公司证书打包的ipa,那必须在生成证书的时候,把需要安装ipa的手机的uuid增加到证书里面(*多可以增加100个)。

假设Studio中Native下有一个MyApp的本地应用,在dist目录下已经生成MyApp.ipa。 不通过苹果商店安装ipa有3种方法:

  1. 同android的*种方法类似,可以通过ios版本的UI浏览器扫描二维码,但要注意,默认下载后是无法安装ipa,可以安装一个叫“同步推”的工具,这样UI下载ipa后使用“同步推”打开ipa就可以安装
  2. 在PC上安装iTunes,并用数据线连接手机,ipa用iTunes打开,在iTunes中点击自己的手机后在“应用程序”页面会列出ipa,把ipa拖动到右边的页面,并点右下角的“同步”即可安装
  3. 部署https,通过一个描述文件plist 指定安装文件,在手机的safari浏览器中通过itms-services:///?action=download-manifest&url=http://域名/xxxx.plist”的方式安装。本文随后详细说明:苹果App如何通过部署HTTPS实现不经过苹果商店的在线下载安装?。

注意:上面的方法越狱和非越狱都适用,但快捷打包生成的ipa只能安装在越狱手机上

二、苹果App如何通过部署HTTPS实现不经过苹果商店的在线下载安装?

部署https提供ipa的下载,步骤如下:

1. 搭建一个HTTPS服务,可以使用HTTPD或者Tomcat构建,具体可搜索相关帖子。由于https好用的证书(就是浏览器默认支持)需要付费,这里巧用github.com可以实现部署。

2. 编写plist文件。plist文件中需注意提供正确的ipa文件路径,以及版本号和Bundle ID。

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN”

“http://www.apple.com/DTDs/PropertyList-1.0.dtd”>

<plist version=”1.0″>

<dict>

<key>items</key>

<array>

<dict>

<key>assets</key>

<array>

<dict>

<key>kind</key>

<string>software-package</string>

<key>url</key>

<!– http或者https链接的ipa文件地址 –>

<string>http://x5.justep.com/apps/x5.ipa</string>

</dict>

<dict>

<key>kind</key>

<string>full-size-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<!– http或者https链接的图片地址,可直接使用app对应的icon(分辨率没强制要求) –>

<string>http://x5.justep.com/apps/x5.png</string>

</dict>

<dict>

<key>kind</key>

<string>display-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<!– http或者https链接的小图片地址,可直接使用app对应的icon(分辨率没强制要求) –>

<string>http://x5.justep.com/apps/x5.png</string>

</dict>

</array>

<key>metadata</key>

<dict>

<key>bundle-identifier</key>

<!– BundleID,就是新建app时的包名 –>

<string>com.justep.x5.demo</string>

<key>bundle-version</key>

<!– 版本号 –>

<string>5.3.2</string>

<key>kind</key>

<string>software</string>

<key>title</key>

<!– 安装app时的提示信息 –>

<string>X5 App download</string>

</dict>

</dict>

</array>

</dict>

</plist>

3. 将plist文件放在https服务目录下。这样就有一个有效的连接地址指向这个文件,例如:

1  https://github.com/myuser/myapp/blob/master/myapp.plist

手机如果要安装app,可以在safari浏览器输入:

1  itms-services:///?action=download-manifest&url=https://xxx/…/myapp.plist

注意:是三个/,不是笔误,url后面写的就是一个有效的可访问plist的https地址,一定要https,否则无法打开

当然,你可以做一个页面,里面用一个链接指向这个地址,方便下载,例如:

1 <a οnclick=”window.location.href=’itms-services:///?action=download-manifest&url=https://xxx/…/myapp.plist'”>下载IPA</a>

开发App,苹果App少不了。不过,苹果商店的审核实在太烦,更新也费劲。WeX5跨前端开源框架,应广大App开发者的要求,做了精心整理, 帮助大家实现苹果App不上传苹果商店、让其他人也能安装,分享如下:

 

WeX5跨前端开源项目页面:http://www.oschina.net/p/x5

一、IOS App不通过苹果商店,有几种办法可以完成安装?

不通过苹果商店安装苹果app(即ipa)的方法较为复杂;如果是非越狱的手机,首先需要注意以下条件:

  1. 如果是299美元的企业证书打包的ipa,那没有任何限制。注意:企业证书是不能发布到苹果市场的,只有99美元那个可以。
  2. 如果是99美元的个人/公司证书打包的ipa,那必须在生成证书的时候,把需要安装ipa的手机的uuid增加到证书里面(*多可以增加100个)。

假设Studio中Native下有一个MyApp的本地应用,在dist目录下已经生成MyApp.ipa。 不通过苹果商店安装ipa有3种方法:

  1. 同android的*种方法类似,可以通过ios版本的UI浏览器扫描二维码,但要注意,默认下载后是无法安装ipa,可以安装一个叫“同步推”的工具,这样UI下载ipa后使用“同步推”打开ipa就可以安装
  2. 在PC上安装iTunes,并用数据线连接手机,ipa用iTunes打开,在iTunes中点击自己的手机后在“应用程序”页面会列出ipa,把ipa拖动到右边的页面,并点右下角的“同步”即可安装
  3. 部署https,通过一个描述文件plist 指定安装文件,在手机的safari浏览器中通过itms-services:///?action=download-manifest&url=http://域名/xxxx.plist”的方式安装。本文随后详细说明:苹果App如何通过部署HTTPS实现不经过苹果商店的在线下载安装?。

注意:上面的方法越狱和非越狱都适用,但快捷打包生成的ipa只能安装在越狱手机上

二、苹果App如何通过部署HTTPS实现不经过苹果商店的在线下载安装?

部署https提供ipa的下载,步骤如下:

1. 搭建一个HTTPS服务,可以使用HTTPD或者Tomcat构建,具体可搜索相关帖子。由于https好用的证书(就是浏览器默认支持)需要付费,这里巧用github.com可以实现部署。

2. 编写plist文件。plist文件中需注意提供正确的ipa文件路径,以及版本号和Bundle ID。

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN”

“http://www.apple.com/DTDs/PropertyList-1.0.dtd”>

<plist version=”1.0″>

<dict>

<key>items</key>

<array>

<dict>

<key>assets</key>

<array>

<dict>

<key>kind</key>

<string>software-package</string>

<key>url</key>

<!– http或者https链接的ipa文件地址 –>

<string>http://x5.justep.com/apps/x5.ipa</string>

</dict>

<dict>

<key>kind</key>

<string>full-size-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<!– http或者https链接的图片地址,可直接使用app对应的icon(分辨率没强制要求) –>

<string>http://x5.justep.com/apps/x5.png</string>

</dict>

<dict>

<key>kind</key>

<string>display-image</string>

<key>needs-shine</key>

<true/>

<key>url</key>

<!– http或者https链接的小图片地址,可直接使用app对应的icon(分辨率没强制要求) –>

<string>http://x5.justep.com/apps/x5.png</string>

</dict>

</array>

<key>metadata</key>

<dict>

<key>bundle-identifier</key>

<!– BundleID,就是新建app时的包名 –>

<string>com.justep.x5.demo</string>

<key>bundle-version</key>

<!– 版本号 –>

<string>5.3.2</string>

<key>kind</key>

<string>software</string>

<key>title</key>

<!– 安装app时的提示信息 –>

<string>X5 App download</string>

</dict>

</dict>

</array>

</dict>

</plist>

3. 将plist文件放在https服务目录下。这样就有一个有效的连接地址指向这个文件,例如:

1  https://github.com/myuser/myapp/blob/master/myapp.plist

手机如果要安装app,可以在safari浏览器输入:

1  itms-services:///?action=download-manifest&url=https://xxx/…/myapp.plist

注意:是三个/,不是笔误,url后面写的就是一个有效的可访问plist的https地址,一定要https,否则无法打开

当然,你可以做一个页面,里面用一个链接指向这个地址,方便下载,例如:

1 <a οnclick=”window.location.href=’itms-services:///?action=download-manifest&url=https://xxx/…/myapp.plist'”>下载IPA</a>

ios app安装的四种方式

*种,用户直接通过App Store下载安装

苹果官方通过非对称加密生成一对公私钥,在iOS设备内置了一个公钥,在苹果后台保存了对应的私钥,在开发者把app上传到App Store时,苹果用私钥对这个app进行签名,当iOS设备用户下载了这个app之后,用公钥验证这个签名,这也就保证了每一个app的来源都是苹果官方的。

第二种,开发者直接把app装进手机调试

1.开发者向苹果后台申请证书,开发者在本地Mac生成一对公私钥,把公钥通过本地子签名根证书传到开发者后台,苹果后台用苹果的私钥去签名我们所传上去的公钥,这样就得到了一个叫开发者证书的东西,以及包含app信息的pp文件,在本地编译完一个app后,用本地的私钥对这个app签名,同时把pp文件打包进app里,然后在安装时,iOS设备取得证书,通过苹果的公钥去验证这个证书的签名已经pp文件的信息是否正确,通过这种方式,就控制了app安装的泛滥。

第三种,企业内部安装

这种方式的app安装需要开发者通过企业证书编译的安装包才能实现,这种方式的签名已经验证和第二种是差不多的,*大的区别就在于企业级证书的app不限制安装设备数量,然后需要用户手动点击信任这个企业才能通过验证,但不能将app上传到App Store。

第四种,AD-Hoc安装

这种方式相比于企业级证书安装,则是限制了安装的设备数量,签名以及验证和第二种也是一样的,这种方式用于公司内部用户的安装测试。