Skip to content

Instantly share code, notes, and snippets.

@zi6xuan
zi6xuan / bottom_border.xml
Last active February 20, 2018 01:25
通过shape绘制矩形,实现下划线,通过填充矩形实现的方法不太好,因为有背景色存在,这个方法只有下划线背景是透明的
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="1px"
android:left="-2px"
android:right="-2px"
android:top="-2px">
<shape>
<stroke
@zi6xuan
zi6xuan / round_point.xml
Created February 20, 2018 05:37
通过shape绘制一个多层圆点,第一层背景主要用来当作外层描边,第二层是粗描边和内圆颜色
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center">
<shape android:shape="oval">
<solid android:color="@color/colorPrimaryDark" />
</shape>
</item>
<item
android:bottom="1dp"
android:gravity="center"
android:left="1dp"
@zi6xuan
zi6xuan / layout.xml
Created February 20, 2018 07:45
android:layout_weight="1"实现自动填充剩余空间
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.nttd.app.test.CarMessage.fragments.NormalFragment">
<ScrollView
android:layout_width="match_parent"
@zi6xuan
zi6xuan / .eslintrc.js
Created March 1, 2018 00:09
vscode eslint 配置文件参考
module.exports = {
"parser": "babel-eslint",
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"plugins": [
"react",
"react-native"
],
@zi6xuan
zi6xuan / Utils.java
Created March 29, 2018 07:20
部分手机或系统播放系统提示音,会循环播放,设置一个超时自动停止
public static void playSystemSound(int type) {
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
if (am == null) return;
final int ringerMode = am.getRingerMode();
switch (ringerMode) {
case AudioManager.RINGER_MODE_SILENT: //
{
//do nothing
}
break;
@zi6xuan
zi6xuan / richText.js
Created May 24, 2018 05:54
react-native text support url link
richText(str: string) {
//
let strAry = new Array();
let startI = 0;
let urls = str.match(/<https?\:\/\/.+?>/g);
let textAry = str.split(/<https?\:\/\/.+?>/);
let viewAry = new Array();
for (let i = 0; i < textAry.length; i++) {
let urlCom = null;
if (urls != null && i < urls.length) {
@zi6xuan
zi6xuan / MsgBox.js
Created September 21, 2018 06:42
一个悬浮在手机顶端的信息提示框
import { Theme, Overlay } from 'teaset';
export function BBox(msg: strings) {
let overlayView = (
<Overlay.PullView
containerStyle={{ alignItems: 'stretch', justifyContent: 'flex-start', backgroundColor: '#00000000', }}
side='top'
overlayOpacity={0}>
<View style={{ justifyContent: 'center', backgroundColor: '#000000D1', height: 120, paddingTop: Theme.statusBarHeight }}>
@zi6xuan
zi6xuan / StorageUtils.java
Created October 12, 2018 05:20
获得所有sd卡挂载目录
public class StorageUtils {
public static ArrayList<Volume> getVolume(Context context) {
ArrayList<Volume> list_storagevolume = new ArrayList<Volume>();
StorageManager storageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE);
try {
Method method_volumeList = StorageManager.class.getMethod("getVolumeList");
import React, { Component } from 'react';
import { Image, InteractionManager } from 'react-native';
export default class JImage extends Component<Props> {
constructor(props) {
super(props)
this.state = {
width: 1,
height: 1
@zi6xuan
zi6xuan / rn-location.js
Created September 6, 2019 02:23
The RN obtains the location function, automatically checks and requests permissions
export async function getCurrentPosition(onSuccess, onError, error3) {
if (isAndroid) {
const granted = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION);
if (!granted) {
PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION)
.then((status) => {
if (status == PermissionStatus.granted) {
//
getCurrentPosition(onSuccess, onError, false);
}