一、String -> int
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
区别:
第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象
二、去掉dialog边框的阴影 xml代码:<item name="android:windowBackground">@android:color/transparent </item>
三、用xml写的动画中fromXDelta 类似的值
fromXDelta 属性为动画起始时 X坐标上的位置
默认是以自己为相对参照物
android:toXDelta="100%",表示自身的100%,也就是从View自己的位置开始。
android:toXDelta="80%p",表示父层View的80%,是以它父层View为参照的。
四、动画运行后,重新显示会再次运行
Animation alpha= AnimationUtils.loadAnimation(this, R.anim.set_slide_left);
View v;
v.startAnimation(alpha);
//这就完成了补间动画,但是如果整个布局设置invisible,再设成visible,
//会看见动画再运行一遍,因此再这个动画完成后,加个v.clearAnimation();
//不是start加,可以弄个延时,动画完成后加clear
五、关于点九图
先看两张图
1.
2.
1.可以正常缩放,放内容;
2.可以正常缩放,但是如果设置布局高度,内容只能显示在中间一条缝隙显示,
设置适应高度,则必然圆角矩形,因为要放东西呀。
所以 做点九图要做成1。可能说的不明白,意会一下再动手实践一下就明白了
六、解决键盘消失,edittext才适应大小
猜测的原因是文字输入的时候,因为某种原因,edittext没有获取到内容的变化
可以尝试在mianfest的activity属性中设置android:windowSoftInputMode=
adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
可以使文字顶上去,从而更新了edittext,大概应该是这个原因,我猜的,哈哈哈
七、点击edittext文字不能把内容往上推
这是由于设置了 android:maxLines,原因大概就是设定了最大行数,到了这个行数,软件就不理你了
八、获取到宽高的单位
bitmap.getWidth()
和 DisplayMetrics d = context.getResources().getDisplayMetrics();d.widthPixels
获取到的宽高单位都是像素
九、更新线程方法
1、AsyncTask利用线程任务异步更新UI界面
2、利用Looper更新UI界面
3、runOnUiThread
十、SimpleDateFormat函数语法
SimpleDateFormat函数语法:
G 年代标志符 y 年 M 月 d 日
h 时 在上午或下午 (1~12) H 时 在一天中 (0~23)
m 分 s 秒 S 毫秒 E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
十一、动画中的end()和cancel()的区别
两者的区别则在于停止后动画所在的状态,当你使用cancel方法来停止动画后,动画只是停止了它的时间轴,动画的状态会停在一个中间态(intermediate state)。
如果通过end 方法来停止一个动画,那么动画会直接快进到该动画最后一帧并且停止,所有的对象都会保持在动画最终结束后的状态。
十二、通过地址获取bitmap
FileInputStream in = null;
try {
in = new FileInputStream(new File(path));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
Bitmap bm = BitmapFactory.decodeStream(in);
十二、dfDecimalFormat
自定义的数字格式
十三、参数个数不定怎么搞
public static void test(String arg, String... args) {
注意点:1.参数定为不定参数的话,这个参数可以根据参数个数动态生成一个数组,然后传入方法执行;2.方法的参数列表中最多只有一个不定长度的参数;3.不定长度的数组的位置必须是最后一个参数。不然不能通过编译。
十三、(不太确定)styles里面的layout_width
<style name="txt_new_share">
<item name="android:layout_width">-2dp</item>
<item name="android:layout_height">-2dp</item>
</style>
-2dp 和wrap同,-1同match 但是我记得styles里面不能用wrap和match
十四、初始化页面中不能获取宽高
layoutPhone.getWidth()类似这种,不能写在 页面加载中,因为获取不到宽高,一般写在要用的button里面
十五、onTextChanged参数解释
beforeTextChanged(CharSequence s, int start, int count, int after)
这个方法是在Text改变之前被调用,它的意思就是说在原有的文本s中,从EditText的start开始的count个字符将会被一个新的长度为after的文本替换,注意这里是将被替换,还没有被替换。
onTextChanged(CharSequence s, int start, int before, int count)
这个方法是在Text改变过程中触发调用的,它的意思就是说在原有的文本s中,从EditText的start开始的count个字符替换长度为before的旧文本,注意这里没有将要之类的字眼,也就是说一句执行了替换动作。