其他

获得view对象
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);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值