获得view对象
清空历史栈在Intent实例化后,对象.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
全屏
推荐使用在AndroidManifest.xml中添加
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
android:screenOrientation="landscape"
// 固定竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
android:screenOrientation="portrait"
// 根据感应器自动选择横屏或竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
android:screenOrientation="sensor"
在application或activity中使用System.currentTimeMillis()获取自1970年1月1日到当前系统时间的毫秒数, long 类型。
一般用途:
1、在控制线程时间,刷新屏幕频率。
java指定默认值
1.数值类型=0,如:int
2.boolean类型=false
3.字符类型=空字符,如:char
4.字符串类型=null,如:String
5.对象类型=null,如:Object带标签的break
在2.0以后重写public void onBackPressed() {}专门监听back键
使用handler.removeMessages(int what)取消handler队列中标示为what的未使用的消息使listview保持在最后一条android:transcriptMode="alwaysScroll"onKeyLongPress 物理长按后响应在onKeyDown方法里使用event.startTracking();并返回true不然方法无效
用Android访问本地站点
如果你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP 10.0.2.2 吧, 10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias记住,在模拟器上用10.0.2.2访问你的电脑本机.也就是输入http://10.0.2.2:8080/dem/index.html
横竖屏切换时不重新创建Activity
子控件得到父控件的点击事件
设置窗口为半透明
在window7下把eclipse固定在任务栏中的方法
在eclipse目录下,修改eclipse.ini文件,在-vmargs之前:加入
-vm
C:\Program Files\Java\jdk1.7.0_04\bin(这里是jdk路径)
重启eclipse就能固定了
获取版本号和版本名
在任意界面弹出Dialog
使用java代码对控件进行位置编辑
下载完成进行安装
Dialog点击不关闭
webView加载指定数据
设置控件宽度
自定义View,报错:java.lang.NoSuchMethodException:
重写public MyView(Context context, AttributeSet attrs, int defStyle)即可
自定义控件必须实现三个父类的方法
启动Activity就打开PopupWindow,覆盖public void onWindowFocusChanged(boolean hasFocus)方法在这个方法里写打开方法,注意每次窗口切换可能会打开多次所以要注意,或者使用Handle加延时。
Bitmap每次使用完了之后如果不会在使用就必须释放资源不然容易报错
释放资源使用
1. SCROLL_STATE_IDLE 滑动后静止
2. SCROLL_STATE_FLING 手指离开屏幕后,惯性滑动
3. SCROLL_STATE_TOUCH_SCROLL 手指在屏幕上滑动
混淆时让R.java不混淆
如果使用Java代码添加控件需要使用weight属性的话使用
ListView滚动到某一项
默认不打开键盘
类似QQ点击Back不销毁Activity,调用该方法
LayoutInflater l = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = l.inflate(XML, null);
清空历史栈在Intent实例化后,对象.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
全屏
this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN
,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏
如使用了去掉信息栏则可以省略去掉标题栏,使用此代码会有一瞬间显示标题栏和信息栏不建议使用,代码必须放在setContentView之前
推荐使用在AndroidManifest.xml中添加
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"<!-- 不加 Fullscreen显示信息栏 -->
// 固定横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
android:screenOrientation="landscape"
// 固定竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
android:screenOrientation="portrait"
// 根据感应器自动选择横屏或竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
android:screenOrientation="sensor"
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;宽度
int height = dm.heightPixels;高度
float dpi = dm.density;密度
必须在Manifest.xml中的application节点外添加
<uses-sdk android:minSdkVersion="8" />
否则正确的宽高要乘以密度
int screenWidth;//屏幕宽度
int screenHeight;//屏幕高度
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();
int w= getResources().getDisplayMetrics().widthPixels;//宽度
int h= getResources().getDisplayMetrics().heightPixels;//高度
在application或activity中使用System.currentTimeMillis()获取自1970年1月1日到当前系统时间的毫秒数, long 类型。
Calendar c = Calendar.getInstance();
long time = c.getTimeInMillis();
效果跟这个一样的。
long l=new Date().getTime();
这个也一样
一般用途:
1、在控制线程时间,刷新屏幕频率。
time1 = System.currentTimeMillis();
你所运行的程序。。。
time2 = System.currentTimeMillis();
if (time2 - time1 < 60) {
try {
Thread.sleep(60 - (time2 - time1));
} catch (InterruptedException e) {
}
2、获取当前时间,精确到毫秒可以用在测试代码的运行时间。
long l1 = System.currentTimeMillis();
//运行代码
long l2 = System.currentTimeMillis();
long l3 = l2 - l1;//代码的运行时间
public class TestTime{
public static void main(String[] args){
String str = new String("0");
long time1 = System.currentTimeMillis();
for(int i=0;i<10000;i++){
str += i;
}
long time2 = System.currentTimeMillis();
System.out.println("for循环共用了" + (time2 - time1) + "毫秒。");
}
}
java指定默认值
1.数值类型=0,如:int
2.boolean类型=false
3.字符类型=空字符,如:char
4.字符串类型=null,如:String
5.对象类型=null,如:Object带标签的break
test: {
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 20; j++) {
break test;
}
}
}
如果有多层嵌套可以使用带标签的break跳出指定块
在2.0以后重写public void onBackPressed() {}专门监听back键
使用handler.removeMessages(int what)取消handler队列中标示为what的未使用的消息使listview保持在最后一条android:transcriptMode="alwaysScroll"onKeyLongPress 物理长按后响应在onKeyDown方法里使用event.startTracking();并返回true不然方法无效
android:theme="@android:style/Theme.Dialog"
将Activity显示为Dialog模式
用Android访问本地站点
如果你想在模拟器simulator上面访问你的电脑,那么就使用android内置的IP 10.0.2.2 吧, 10.0.2.2 是模拟器设置的特定ip,是你的电脑的别名alias记住,在模拟器上用10.0.2.2访问你的电脑本机.也就是输入http://10.0.2.2:8080/dem/index.html
横竖屏切换时不重新创建Activity
android:configChanges="orientation|keyboardHidden"
完全退出
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
子控件得到父控件的点击事件
android:duplicateParentState="true"
去掉子控件的focus 一般用于ListView等控件的子项
android:descendantFocusability="blocksDescendants"
绘制半透明图片时的质量
android:drawingCacheQuality=""
android:listSelector="@drawable/selector_bg"
设置窗口为半透明
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.alpha = 0.5f; // 0.0-1.0
getWindow().setAttributes(lp);
对EditText的输入限制
android:digits="0123456789xyzXYZ"<!-- 只允许出现的字符-->
在window7下把eclipse固定在任务栏中的方法
在eclipse目录下,修改eclipse.ini文件,在-vmargs之前:加入
-vm
C:\Program Files\Java\jdk1.7.0_04\bin(这里是jdk路径)
重启eclipse就能固定了
获取版本号和版本名
PackageManager pm = context.getPackageManager();// context为当前Activity上下文
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
String versionName = pi.versionName;
int versionCode=pi.versionCode;
/**
* @deprecated
*/
在方法前加入这个可以提示为方法过时
在任意界面弹出Dialog
AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.show();
使用java代码对控件进行位置编辑
LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
btn.setLayoutParams(params);
下载完成进行安装
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(updateFile), "application/vnd.android.package-archive");
context.startActivity(intent);
Dialog点击不关闭
public void onClick(DialogInterface dialog, int which) {
try {
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
// 设置mShowing值,欺骗android系统
field.set(dialog, true);//true为关闭,false为不关闭
} catch (Exception e) {
}
}
webView加载指定数据
vwContent.loadDataWithBaseURL(null, "内容", "text/html", "utf-8", null);
设置控件宽度
LayoutParams layoutParams = ivBottomLine.getLayoutParams();
layoutParams.width = bottomLineWidth;
ivBottomLine.setLayoutParams(layoutParams);
自定义View,报错:java.lang.NoSuchMethodException:
重写public MyView(Context context, AttributeSet attrs, int defStyle)即可
自定义控件必须实现三个父类的方法
启动Activity就打开PopupWindow,覆盖public void onWindowFocusChanged(boolean hasFocus)方法在这个方法里写打开方法,注意每次窗口切换可能会打开多次所以要注意,或者使用Handle加延时。
Bitmap每次使用完了之后如果不会在使用就必须释放资源不然容易报错
释放资源使用
bitmap.recycle();
bitmap = null;
1. SCROLL_STATE_IDLE 滑动后静止
2. SCROLL_STATE_FLING 手指离开屏幕后,惯性滑动
3. SCROLL_STATE_TOUCH_SCROLL 手指在屏幕上滑动
混淆时让R.java不混淆
-keep class **.R$* {
*;
}
如果使用Java代码添加控件需要使用weight属性的话使用
LinearLayout.LayoutParams llparams = new LinearLayout.LayoutParams(width, height, weight);
ListView滚动到某一项
ListView.smoothScrollToPosition(postion);
默认不打开键盘
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
类似QQ点击Back不销毁Activity,调用该方法
moveTaskToBack(true);