随手记
1.限定textview字数,超过的字数用…表示
只需设置textview的三个属性:
android:singleLine="true"
android:maxEms="8"//根据实际需求更改
android:ellipsize="end"
maxWidth maxLength maxEms 区别:http://blog.youkuaiyun.com/pashanhuxp/article/details/51167954
2.listview如果项目中没有下拉刷新的功能,那么下拉listview的时候会有下拉刷新的效果,就是会出现一块阴影
去掉这个阴影可以用属性:
android:overScrollMode="never"
3.点击两次返回键退出程序
原理就是记录两次点击的时间,时间差小于某个值的时候就退出
关键代码:
//是否退出
private boolean isExit() {
if ((System.currentTimeMillis() - mExitTime) > 800) {
mExitTime = System.currentTimeMillis();
return false;
}
return true;
}
4.module变成library
有时候我们项目中会遇到一个module依赖另一个module.这个时候要是想把另一个module变成依赖库需要下面几个步骤:
比如Amodule依赖Bmodule
(1)修改Bmodule的gradle文件.
把apply plugin: ‘com.android.application’ 改成apply plugin: ‘com.android.library’
把applicationId “com.xxx”删掉
(2)然后再设置添加module dependency
5.隐藏activity的titlebar
我用的是:
android:theme=”@android:style/Theme.Light.NoTitleBar”
报错:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
我用的activity继承了AppCompatActivity,因此这里的主题要与其配合
改成:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
6.AS中查看类的继承关系
快捷键Ctrl+h
7.TextView可以在文字的上下左右添加图片,如果想让添加的图片和文字之间有空隙,可以设置通过android:drawablePadding=”2dp”来控制
8.进程间通信可以使用Messenger和AIDL,但是Messenger不适用于并发大的情况,因为服务端处理消息是串行的,必须一个一个的来处理.可参考
这里写链接内容
9.TextView中间插入图片
String html ="<strong>如何在创建合集时找到带有:</strong>" + "<img src='" + R.drawable.renminbi + "'>" +"标识的游戏";
private void initHtml(String html,TextView tv) {
CharSequence charSequence = Html.fromHtml(html, new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id = Integer.parseInt(source);
Drawable drawable = getResources().getDrawable(id);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth() ,
drawable.getIntrinsicHeight());
return drawable;
}
},null);
tv.setText(charSequence);
}
10.在activity里获取view的宽高
(1)第一种:
text.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
text.getViewTreeObserver().removeGlobalOnLayoutListener(this);
System.out.println(text.getWidth());
}
});
(2)第二种:
text.post(new Runnable() {
@Override
public void run() {
System.out.println(text.getWidth());
}
});
11.EditText在布局中设置focusable为false,想要点击之后可以编辑,除了要设置focusable为true,还要设置setFocusableInTouchMode(true);
12.软键盘的显示与隐藏:最好用
13.动态改变背景颜色的透明度,要自定义一个shape
通过 drawable = getActivity().getResources().getDrawable(R.drawable.bg_more_top);
得到drawable,然后drawable.setAlpha(0);
14.EditText 通过点击来获取焦点,不要用setOnClickListener,要用onTouchListener,如果用onClick的货需要点击两次才能获得焦点
16.listview原理
参考:哈哈哈哈
关键点:
(1)ABSListview的内部类RecycleBin
(2)两次onLayout()方法的处理,避免重复数据
17.EditText 光标的位置可通过edittext.setSelection()来设置