代码小细节

1.

String path = String.format(Contants.NEWS_URL_HOST+Contants.NEWS_TOP_URL,pageIndex);

 将NEWS_URL_HOST+NEWS_TOP_URL组成的网址中d%的值替换为pageIndex

2.OnScrollListener滑动监听中onScroll应设置一个标签返回给onScrollStateChanged用

3.

Runtime.getRuntime().maxMemory();

得到手机最大内存

4.

LruCache<String,Bitmap> cache = new LruCache<String, Bitmap>((int) (maxMemory/16)){
    @Override
    protected int sizeOf(String key, Bitmap value) {
        return value.getByteCount()*value.getHeight();//返回一张图片的字节总数。
    }
};

返回一张图片的字节总数。

5.

 getResources().getDisplayMetrics().widthPixels;

返回屏幕宽度

6.

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                int left = (int) (scroll_line_width*(position+positionOffset));//下划线距离最左边的距离
                params.leftMargin = left;
                scroll_line.setLayoutParams(params);
            }

            @Override
            public void onPageSelected(int position) {
                int out_left = position*scroll_line_width +scroll_line_width/2 - 
                  getResources().getDisplayMetrics().widthPixels/2;//滑动条左边超出屏幕的距离 scrollView.smoothScrollTo(out_left,0); } @Override public void onPageScrollStateChanged(int state) { } });

7.window

// 去掉标题栏(该代码必须在setContentView()前调用)
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
window = getWindow();
// 去掉状态栏
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

 8.切换横竖屏时如何不销毁当前Activity

<activity android:name=".MainActivity" android:configChanges="orientation|screenSize">

 9.隐藏ActionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

 10.动态设置布局宽和高

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,1);
                txVeiwHolder.imageView.setLayoutParams(params);

 或者

RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
                txVeiwHolder.imageView.setLayoutParams(params1);

 11.使应用程序变成对话框的形式

android :theme="@android:style/Theme.Dialog" 

 12.java代码调用string.xml中的文字可以使用

getActivity().getString(R.string.ts0)

 但是调用颜色的话需要sdk23以上的版本

getActivity().getColor(R.color.colorBack)
getResources().getColor(R.color.my_blue)

 

 13.String s = new String("xyz");创建了几个String Object? 

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s 

14.viewpager每次切换的时候, 会重新创建当前界面及左右界面三个界面, 每次切换都要重新oncreate, 所以只要设置

viewPager setOffscreenPageLimit(3);

即可避免这个问题。
viewPager.setOffscreenPageLimit(3);表示三个界面之间来回切换都不会重新加载

15.fragment里嵌套viewpager,如何让viewpager滑到最后一页滑不动

viewPager.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        //让ViewPager的父容器不要拦截滑动事件
        viewPager.getParent().requestDisallowInterceptTouchEvent(true);
        //这里如果返回true则ViewPager的滑动事件会被屏蔽
        return false;
    }
});
//给ListView添加头部,这行代码一定要写在listView.setAdapter(adapter);之前
listView.addHeaderView(headerView);

 16.将一个Activity设置成窗口样式

在AndroidManifest.xml中定义Activity的地方一句话

android:theme="@android:style/Theme.Dialog"

android:theme="@android:style/Theme.Translucent"//就变成半透明的

 17.后台的Activity如何在被系统回收之前保存当前状态?

onSaveInstanceState()

 18.android中service的实现方法是

startservice和bindservice

 19.TextView设置为指定的行数

android:lines="2"
android:ellipsize="end"

20.登录密码使用MD5加密

MD5.getMD5(old_password).toUpperCase()

 21.alertdialog无法弹出

切记:清单文件中app的风格一定要继承

android:theme="@style/Theme.AppCompat.Light.NoActionBar"

22.代码中调用string.xml中的字符

在Activity中

getString(R.string.resource_name); 

或者

getResources().getString(R.string.resource_name); 

其他地方
用context上下文

context.getString(R.string.resource_name); 

context可以从调用的地方获得,或者 getApplicationContext 用全局的context 
或者用

application.getString(R.string.resource_name); 

 23.onActivityResult不执行的原因

activity的启动模式不能为singleTask

 24.圆角按钮

效果图

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke android:width="1dp" android:color="#FFFFFF"></stroke>
    <corners android:radius="3dp"></corners>
</shape>

25.刷新当前activity

调用oncreate()方法即可 

26.去除listview之间的分割线

android:divider="@null"

27.格式化时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String dateStr = sdf.format(new Date());//最新的时间

 如果不想月和日前面自动补0,只要设置格式为yyyy-M-d即可

 28.

<activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"/>

 

android:exported="true"的作用是设置其他应用可以调用该activity

 29.

自定义View中注册广播,需要重写onDetachFromWindow()方法去销毁广播

30.

如果不想控件被父布局遮挡,在根布局设置属性android:clipChildren="false"

31.

如果不想底部导航栏被软键盘顶起来,在清单文件设置 android:windowSoftInputMode="adjustPan"这个属性

32.

迭代开发的时候如何向前兼容新旧接口?

设计服务器接口时,都带版本号:例如1/2、当时间久了以后,旧版本就不维护了

33:

(后缀)逆波兰式

中缀表达式:9+(3-1)*3+10/2

后缀表达式:931-3*+10 2/+

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值