Android小笔记

一、ProgressBar控制转速

<ProgressBar
        android:id="@+id/pb"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:indeterminateDrawable="@drawable/anim_progress_rotate"/>

anim_progress_rotate.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"
        >
        <rotate
            android:drawable="@drawable/loading"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="1080"  //转速的问题只要修改android:toDegrees的值,将值变大点就好了,推荐改为1080
/> </item> </layer-list>

二、判断TextView是否超出加省略号

  通过指定android:ellipsize="end" android:singleLine="true" 可以让TextView自动截断超出部分并且添加省略号。但是如何判断一个TextView是否被截断了呢?

 public float measureTextLength(TextView tv) {
         if (paint == null) {
             paint = new Paint();
         }
         paint.setTextSize(tv.getTextSize());
         return paint.measureText(tv.getText().toString());
    }

  上面方法可以算文字如果一行呈现的话需要多长的长度,判断是否大于两行的方法:(((int) measureTextLength((TextView) v) + 0.5f) + ((TextView) v).getPaddingLeft() + ((TextView) v)
                                .getPaddingRight()) / ((TextView) v).getWidth() > 2

  就是排除Textview两边的pandding的距离 然后再除以本身这个组件的长度,实际操作再自行调整。

三、java获取时间戳

//方法 一
System.currentTimeMillis(); 
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new Date().getTime();

  在网上看到,System.currentTimeMillis() 这种方式速度最快。有机会我也试试比较一下

四、Fragment 不响应 onActivityResult方法

  实际开发中,在使用fragment 和 fragmentActivity组合,调用startActivityForResult方法可能没有响应,问题解决了,总结一下正确的调用方式。

  1.在fragment.java 中使用getActivity().startActivityForResult(intent,code);

   这种情况下fragmentActivity下的onActivityResult方法被调用。fragment中的onActivityResult不会被调用。所以应该将对应的onActivityResult写到fragmentActivity下

  2.在fragment.java 中使用startActivityForResult(intent,code);

  这种情况下fragmentActivity下的onActivityResult方法被调用,同时注意的是如果fragmentActivity下的onActivityResult方法调用了super.onActivityResult方法,fragment中的onActivityResult也会被调用。

五、找不到android-support-v4 包的解决办法

  Project->properties->Java Build Path->Libraries->Add External Jars中加入sdk目录下的extras/android/support/v4/android-support-v4.jar

原文地址:https://www.cnblogs.com/xuepeng0521/p/4259918.html