android:background="@android:color/transparent"
作者:root
Android样式开发之shape详细使用
授人以鱼不如授人以渔:本篇文章不仅告诉你如何使用shape,更会告诉你初学shape该怎么学习?希望对你有用!
说明:什么是shape呢?有什么用呢?我们平常在开发当中,通常会遇到这样的情况,就是会给控件增加一个背景,比如button,textview等!可以说shape就是一个形状定义工具。是xml绘图当中非常重要的一个工具,这样说你可能还是不太理解,那么我们就用实例来说明。你可能见过这样的的登录界面。
我们知道以上三个控件一般是两个EditText和一个Button,这个我们都会,但是你却发现上面的控件是有形状的,而且这个button还是有背景色的,你说可以给button设置背景色啊,但是你发现没,他这个背景色还不是纯色而是渐变的,这样的效果该怎么实现呢?你可能会说找一个这样的图片当背景,这倒是一种办法,但是这样不仅会增加apk的大小,而且实现起来也不一定就是这样的效果,其实要实现这样的效果,最好的方法就是使用shape。
Android下拉控件Spinner的使用
代码:
Spinner spinner = findViewById(R.id.spinner); // 获取下拉控件
spinner.setDropDownVerticalOffset(62); // 下拉的纵向偏移
String[] spinnerItems = {"请选择楼号", "1号楼", "2号楼", "3号楼"}; // 数据
// 自定义选中的界面样式(上下文,样式,文本框资源Id,数组)
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<>(this, R.layout.item_select, R.id.text, spinnerItems);
// 自定义下拉的界面样式
spinnerAdapter.setDropDownViewResource(R.layout.item_drop);
// 设置适配器
spinner.setAdapter(spinnerAdapter);
// 设置Item选择监听器
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.i(TAG, "onItemClick: spinnerItem");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
Log.i(TAG, "onNothingSelected: spinnerItem");
}
});
Android手机去掉底部虚拟按键栏方法
Android手机屏蔽状态栏下拉
Android 隐藏底部菜单
/**
* 隐藏底部菜单
*/
protected void hideBottomUIMenu() {
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
使用NetworkInterface类获得网络接口信息
JAVA合并多个byte[]为一个byte[]
private static byte[] byteMergerAll(byte[]... args) {
int length_byte = 0;
for (byte[] b : args) {
length_byte += b.length;
}
byte[] all_byte = new byte[length_byte];
int countLength = 0;
for (byte[] b : args) {
System.arraycopy(b, 0, all_byte, countLength, b.length);
countLength += b.length;
}
return all_byte;
}
参考链接:
Android 获取MAC地址
/**
* 获取无线网络Mac地址
*
* @return
*/
private static String getWifiMac() {
return readFile("/sys/class/net/wlan0/address").toUpperCase();
}
/**
* 获取有线网络Mac地址
*
* @return
*/
private static String getLocalMac() {
return readFile("/sys/class/net/eth0/address").toUpperCase();
}
/**
* 读取文件内容
*
* @param filePath
* @return
*/
private static String readFile(String filePath) {
StringBuilder sb = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
if (sb.length() > 0) {
sb.append("\n");
}
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
PS:笔者是在定制安卓设备上面开发,用该方式获取Mac地址没问题。
PS2:手机上因为权限问题很可能获取不了Mac地址,请自行测试。
PS3:不过一般来说,手机上也不用获取有线网络的Mac地址才对。
参考链接:
