1.?setRequestedOrientation(1);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
2.mWebView.setScrollBarStyle(0);
? ?setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY)
3.webSettings.setCacheMode(int);
public static final int LOAD_DEFAULT= -1;
public static final int LOAD_NORMAL =0;
public static final int LOAD_CACHE_ELSE_NETWORK =1;
public static final int LOAD_NO_CACHE =2;
public static final int LOAD_CACHE_ONLY =3;
webSettings.setCacheMode(int);
4.setVisibility(int)
publicstaticfinalintVISIBLE =0;
publicstaticfinalintINVISIBLE =4;
publicstaticfinalintGONE =8;
則對于:setVisibility(0)?==>?setVisibility(View.VISIBLE)
其他依次類推乳规。
5.calendar.set(int field, int value)
calendar.get(int)
Calendar這是一個(gè)日期工具類俺夕,也是根據(jù)當(dāng)前常量獲取返回的顯示格式時(shí)間
get以及set就是獲取下面的具體常量
field參數(shù)代表需要傳入的常量? value就是需要換算的時(shí)間值
public final static int YEAR =1;
public final static int MONTH =2;
public final static int WEEK_OF_YEAR =3;
public final static int WEEK_OF_MONTH =4;
public final static int DATE =5;
public final static int DAY_OF_MONTH =5;
public final static int DAY_OF_YEAR =6;
public final static int DAY_OF_WEEK =7;
反編譯之前的方法如圖
修改之后的圖辨赐,其他的數(shù)字依次類推
6.MeasureSpec.makeMeasureSpec(xx, int)
反編譯的代碼中MeasureSpec.makeMeasureSpec(xx, int)的第二個(gè)參數(shù)是個(gè)int類型的數(shù),這個(gè)比較簡單徘公,直接看文檔或者源碼即可找到:
源碼:
public static class MeasureSpec {
public static final int UNSPECIFIED = 0;
public static final int EXACTLY = 1073741824;
?public static final int AT_MOST = -2147483648;?
則對于:
MeasureSpec.makeMeasureSpec(xx, 0)或MeasureSpec.makeMeasureSpec(getWidth(), Integer.MIN_VALUE)
我們應(yīng)該修改為
MeasureSpec.makeMeasureSpec(xx, View.MeasureSpec.UNSPECIFIED)
其他依次類推
7.animator.setRepeatMode(int);
這個(gè)是ValueAnimator類設(shè)置動(dòng)畫的屬性晦攒,
public static final int RESTART = 1;
public static final int REVERSE = 2;
public static final int INFINITE = -1;
設(shè)置也是根據(jù)反編譯的值進(jìn)行
8.?setColor(-17367043)
反編譯的代碼中會(huì)有很多setColor(int)的情況狐肢,
比如setColor(-16777216)弃秆,這個(gè)值比較特別,能輕易的查到Android文檔中對這個(gè)整數(shù)的定義:
public static final int BLACK. Added in API level 1 Constant Value: -16777216 ( 0xff000000).
也就是說setColor(-16777216)中-16777216對應(yīng)的顏色是BLACK(0xff000000)暑塑,那么其他系統(tǒng)未定義成某個(gè)顏色名的值呢吼句?
-16777216 對應(yīng) 0xff000000 -1 對應(yīng) 0xffffffff 0xffffff 的值
16777215 那么對任意的 setColor(int)中的int值,
我們可以:0xffffffff+(int)+1 或 0xffffffff-(-int+1)
則對于 :setColor(-16777216)
可寫成 :setColor(0xffffffff - 16777215)) 或 setColor(-16777216 + 1 + 0xffffffff))
這樣事格,我們就不用查文檔尋找特定的顏色值惕艳,也能解決任意顏色的設(shè)置。
9.new Runnable()...
反編譯代碼中
new Runnable() {
final /* synthetic */ AbstractButton a;
{
this.a = r1;
}
public final void run() {
this.a.xxxxx();
}};
可直接去掉成員變量:
new Runnable() {
public final void run() {
xxxxx();
}};
10.new Handler()...
同9上面,直接去掉成員變量:
new Handler() {
final /* synthetic */ ButtonSave a;
{ this.a = r1;
}
public final void handleMessage(Message message){
this.a.xxx();
} }
;//修改為
new Handler() {
public final void handleMessage(Message message) {
xxx();
} };
11.context.getSystemService("layout_inflater")
直接看源碼即可:
public static final String POWER_SERVICE = "power";
public static final String WINDOW_SERVICE = "window";
public static final String LAYOUT_INFLATER_SERVICE = "layout_inflater";
public static final String ACCOUNT_SERVICE = "account";
public static final String ACTIVITY_SERVICE = "activity";
public static final String ALARM_SERVICE = "alarm";
public static final String NOTIFICATION_SERVICE = "notification";
public static final String ACCESSIBILITY_SERVICE = "accessibility";
...
則context.getSystemService("layout_inflater")?==>?context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
其他依次類推驹愚。
12.intent.setFlags()
先看源碼:
Intent implements Parcelable, Cloneable {
public static final int FLAG_GRANT_READ_URI_PERMISSION = 1;
public static final int FLAG_GRANT_WRITE_URI_PERMISSION = 2;
public static final int FLAG_FROM_BACKGROUND = 4;
public static final int FLAG_DEBUG_LOG_RESOLUTION = 8;
public static final int FLAG_EXCLUDE_STOPPED_PACKAGES = 16;
public static final int FLAG_INCLUDE_STOPPED_PACKAGES = 32;
public static final int FLAG_ACTIVITY_NO_HISTORY = 1073741824;
public static final int FLAG_ACTIVITY_SINGLE_TOP = 536870912;
public static final int FLAG_ACTIVITY_NEW_TASK = 268435456;
public static final int FLAG_ACTIVITY_MULTIPLE_TASK = 134217728;
public static final int FLAG_ACTIVITY_CLEAR_TOP = 67108864;
public static final int FLAG_ACTIVITY_FORWARD_RESULT = 33554432;
public static final int FLAG_ACTIVITY_PREVIOUS_IS_TOP = 16777216;
public static final int FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS = 8388608;
public static final int FLAG_ACTIVITY_BROUGHT_TO_FRONT = 4194304;
public static final int FLAG_ACTIVITY_RESET_TASK_IF_NEEDED = 2097152;
public static final int FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY = 1048576;
public static final int FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET = 524288;
public static final int FLAG_ACTIVITY_NO_USER_ACTION = 262144;
public static final int FLAG_ACTIVITY_REORDER_TO_FRONT = 131072;
public static final int FLAG_ACTIVITY_NO_ANIMATION = 65536;
public static final int FLAG_ACTIVITY_CLEAR_TASK = 32768;
public static final int FLAG_ACTIVITY_TASK_ON_HOME = 16384;
public static final int FLAG_RECEIVER_REGISTERED_ONLY = 1073741824;
public static final int FLAG_RECEIVER_REPLACE_PENDING = 536870912;
public static final int FLAG_RECEIVER_FOREGROUND = 268435456;
那么對于intent.setFlags(int);?中?int值是上面四種之一的話就比較簡單远搪,例如:
intent.setFlags(536870912);?==>?intent.setFlags(PendingIntent.FLAG_NO_CREATE);
但是遇到一個(gè)比較特別的:intent.setFlags(335544320);
源碼里根本沒有這樣一個(gè)值啊,其實(shí)intent.setFlags( A | B )是可以使用|(或運(yùn)算)的逢捺,那么:
10000000000000000000000000000 = 268435456 | |
100000000000000000000000000 = 6710886410100000000000000000000000000 = 335544320
即 268435456 | 67108864 = 335544320
從而:
intent.setFlags(335544320);==>
intent.setFlags( FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP )
或者
intent.setFlags( FLAG_RECEIVER_FOREGROUND | FLAG_ACTIVITY_CLEAR_TOP )
從?Codota?中搜索intent.setFlags(335544320);看到的是第一種情況谁鳍,結(jié)合intent.setFlags()的用法,應(yīng)該也是第一種情況。