随手记

随手记

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的货需要点击两次才能获得焦点

15 获取手机内app的使用时长

16.listview原理
参考:哈哈哈哈

关键点:
(1)ABSListview的内部类RecycleBin
(2)两次onLayout()方法的处理,避免重复数据

17.EditText 光标的位置可通过edittext.setSelection()来设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值