总结(二)

1、类似朋友圈的发布动态时间
参考自:http://blog.youkuaiyun.com/wwj_748/article/details/42528689

public class MainActivity extends AppCompatActivity {
    private static SimpleDateFormat simpleformat;
    private TextView txt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txt = (TextView) findViewById(R.id.txt);

        Date time = new Date(Long.parseLong("1480389151131"));
        simpleformat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss");
        String str = timeLogic(time);
        txt.setText(str);
    }
    public static String timeLogic(Date date) {
        Calendar calendar = Calendar.getInstance();
        long now = calendar.getTimeInMillis();

        calendar.setTime(date);
        long past = calendar.getTimeInMillis();

        // 相差的秒数
        long time = (now - past) / 1000;

        StringBuffer sb = new StringBuffer();
        if (time > 0 && time < 60) { // 1小时内
            return sb.append(time + "秒前").toString();
        } else if (time > 60 && time < 3600) {
            return sb.append(time / 60+"分钟前").toString();
        } else if (time >= 3600 && time < 3600 * 24) {
            return sb.append(time / 3600 +"小时前").toString();
        }else if (time >= 3600 * 24 && time < 3600 * 48) {
            return sb.append("昨天").toString();
        }else if (time >= 3600 * 48 && time < 3600 * 72) {
            return sb.append("前天").toString();
        }else if (time >= 3600 * 72) {
            return simpleformat.format(date);
        }
        return simpleformat.format(date);
    }

}

2、AlertDialog自定义标题大小、颜色、位置
转自:http://blog.youkuaiyun.com/bellov/article/details/40864123

3、EasyRecyclerView的使用
如果recyclerview上面还有东西(如轮播图,导航栏,推荐)需要展示,就把上面的(轮播图等)用adapter.addHeader()方法当成头部添加进去,不然在页面切换时,recyclerview会把上面的东西全部挤走,自己在在界面的最上面。

4、Android使用帧动画解决内存溢出问题
http://www.cnblogs.com/mcfawa/p/5192335.html

5、AndroidManifest中android:configChanges的作用
当手机横放时, 程序的activity会重启, 以适应新的设备配置. 假如是一个编辑页面, 重启的结果会导致所写内容的丢失, 如果已经写了很多内容, 那将是一件极其蛋疼的事情.

如果不想横屏时activity自动重启, 可以在AndroidManifest文件的activity中声明Android:configChanges属性, 当指定的系统配置发生改变的时候, 系统将不会重启activity, 而是执行程序中的public void onConfigurationChanged(Configuration newConfig)函数, 这样就可以让我们自己处理横屏这件事.
对android:configChanges属性,一般认为有以下几点:
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
2、设置Activity的android:configChanges=”orientation”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
3、设置Activity的android:configChanges=”orientation|keyboardHidden”时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
但是,自从Android 3.2(API 13),在设置Activity的android:configChanges=”orientation|keyboardHidden”后,还是一样 会重新调用各个生命周期的。因为screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置”orientation”, 你还必须设置”ScreenSize”。
解决方法:
AndroidManifest.xml中设置android:configChanges=”orientation|screenSize“

【备注:】
SDK版本号是22,那么ADT的版本应该是22及以上。不过也可以在SDK配置中修改其版本号,骗过eclipse检查,就可以使用低版本的ADT了。
例如:修改android-sdk-windows/tools/lib下的plugin.pro文件

# begin plugin.prop
plugin.version=20.0.0
# end plugin.prop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值