android编程小技巧集锦
1.android中 一个XML文件中引入另一XML的方法如下:
<include
android:id="@+id/inlcude"
layout="@layout/listview_item" />
这样做的好处可以重复利用相同的XML文件
2.android 中去除EditText的黄色边框的方法是:
属性中添加: android:background="@null"
3.android中除去ListView滑动时候黑色背景的方法是:
属性中添加:
android:cacheColorHint="#00000000"
4.android中设置没有TitleBar和全屏的方法分别是:
1. 没有TitleBa
在AndroidManifest.xml 中Activity的theme 设置如下:
<activity
android:name=".Issue"
android:theme="@android:style/Theme.NoTitleBar" /
2.全屏
在AndroidManifest.xml 中Activity的theme 设置如下:
<activity
android:name=".Issue"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
5.去除ScrollView 向上或者向下滑动时候顶部的黄边阴影
在网上搜了一些方法尝试了好多次,把我设置好的拿过来和大家分享一下
具体如下,在ScrollView中去掉滚动条的方法是
android:scrollbars="none"
在java中代码实现的去除黄边的方法如下 最主要的是
scrollView.setOverScrollMode(View.OVER_SCROLL_NEVER);
/**
* 去除ScrollView 顶部黄边的方法,因为在android 2.2 版本以前没有滑动到顶部或者底部黄边的阴影,
* 在2.3版本之后出现了黄色阴影, 解决办法如下,
*
* **/
ScrollView scrollView;
Integer version;
scrollView = (ScrollView) findViewById(R.id.setting_scrollview);
if ((version = Integer.valueOf(android.os.Build.VERSION.SDK)) > 8) {
Toast.makeText(Setting.this, "除去黄边", 1).show();
scrollView.setOverScrollMode(View.OVER_SCROLL_NEVER);
}
6.android中布局的一下技巧
一般控制 控件的位置、间距都需要加layout,控件中字体中的位置、间距则没
1、控件垂直居中、水平居中、居中的方法:
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
2、控件距上、下、左、右、四周的距离
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_margin="20dp"
3、字体在控件中垂直居中、水平居中、居中的方法:
android:gravity="center_vertical"
android:gravity="center_horizontal"
android:gravity="center"
4、字体在控件中距离控件边上、下、左、右四周距离的方法
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:padding="10dp"
7.用代码实现改变组件中drawableTop、drawableBottom、drawableLeft 、 drawableRight的方法
checkread=(TextView)findViewById(R.id.check_read);
checkread.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Drawable drawable= getResources().getDrawable(R.drawable.login_enter);
/// 这一步必须要做,否则不会显示.
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
checkread.setCompoundDrawables(drawable,null,null,null);
}
});
8.控制软键盘不覆盖Button或则下面EditText的方法
在androidmanfest.xml 文件 activity 节点中添加 android:windowSoftInputMode="stateHidden|adjustResize" 控制键盘的隐藏和适应屏幕空间的大小。
<activity
android:name=".TestActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateHidden|adjustResize"
>
9.AlertDialog 中setItems的处理
实现的效果如下:
实现的代码如下:
final CharSequence[] items = { "选择相册图片", "现在拍摄" };
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("添加照片")
.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
//根据设置items中数组中item的值进行监听设置
if (item == 1){
Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(getImageByCamera, 1);
} else{
Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);
getImage.addCategory(Intent.CATEGORY_OPENABLE);
getImage.setType("image/jpeg");
startActivityForResult(getImage, 0);
}
}
}).create().show();
10.验证邮箱格式
//电子邮件
String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher(1111111@qq.com);
boolean isMatched = matcher.matches();
11.android 中解决中文乱码问题
这个办法比较笨,但是比较实用,一眼就可以看出需要的是那种编码
String temp = new String(datastr.getBytes(), "GBK");
System.out.println("****1** getBytes() -> GBK ******\n"+temp);
temp = new String(datastr.getBytes("GBK"), "UTF-8");
System.out.println("****2** GBK -> UTF-8 *******\n"+temp);
temp = new String(datastr.getBytes("GBK"), "ISO-8859-1");
System.out.println("****3** GBK -> ISO-8859-1 *******\n"+temp);
temp = new String(datastr.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("****4** ISO-8859-1 -> UTF-8 *******\n"+temp);
temp = new String(datastr.getBytes("ISO-8859-1"), "GBK");
System.out.println("***5*** ISO-8859-1 -> GBK *******\n"+temp);
temp = new String(datastr.getBytes("UTF-8"), "GBK");
System.out.println("**6**** UTF-8 -> GBK *******\n"+temp);
temp = new String(datastr.getBytes("UTF-8"), "ISO-8859-1");
System.out.println("***7*** UTF-8 -> ISO-8859-1 *******\n"+temp);
经过测试可以在这7中方法中筛选出符合自己要求的编码格式后台输出如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!