工作中一定用的到的小知識點

今天也沒什麼好說的就是一些在平時工作中,覺得很小的一點卻不太會的地方的小總結吧。

1.場景一:在textview中顯示不同顏色的字。

          在textview有textcolor這個屬性,但是大家都知道,這個屬性的設置會使所有的字都顯示爲同一個顏色。但是在一句話中間包含了幾種其他顏色的字,我們總不能使用好幾個textview去拼在一起吧,在這裏我就給大家說一下的幾種方法供大家選擇。

 

(1)使用SpannableString

          SpannableString我只能說很強大在設置textview中的樣式上,當然其他的我還沒有學習,感興趣的盆友可以去看看絕對有用。上例子啦。

 

 

  1. SpannableString ss = new SpannableString(tv_main_person_search_description.getText());//要創建對象
  2.     ss.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.red)), 5, 7,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//這裏               是從資源文件哪裏設置好了顏色,這裏直接獲得就好,5代表的是開始字的位置,7代表結束的位置,包頭不包尾
  3.                 tv.setText(ss);
    •    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含兩端start和end所在的端點
    •    Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端點
    •    Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含兩端start,但不包含end所在的端點
    •    Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含兩端start和end所在的端點

     

(2)使用html簡單粗暴

 

                tv.setText(Html.fromHtml("<font color=\"#FAAD3B\">" +你好+ "</font>" + "啊"));

 

這裏就是將需要變色的字包在html標籤中就可以了,將顏色屬性設置即可。

 

 

        當然方法還有很多,有好的其他方法歡迎分享。

 

 

2.場景二:對於實體類中常常會出現空值的情況。

 

       在一個android項目中經常會使用從服務器獲得數據,爲了好用將數據封裝成對象來使用。但是在使用的時候會經常出現一些字段返回空值的現象。在使用的時候我們也會經常忘記去判空。不判空自然就會出現萬惡的空指針咯。並且有些數據是在在整個項目中多次去使用的,想想每次都去判空,會不會覺得瞬間沒愛啦。哈哈,在工作中我就發現了原來大神都是這樣做的。

 

       在實體類中去判空,這樣無論在什麼地方使用都不怕空指針啦!

 

public String getPassiveCompanyName() {
return TextUtils.isEmpty(PassiveCompanyName) ? "" : PassiveCompanyName;
}

就是在set,get方法中的get方法中去判斷。還有還在判空中建議大家使用TextUtils.isEmpty();儘量不要使用==null或者.equals("");大家要知道String也是對象,所以想要使用這種方法一定要判斷對象是否爲空,==null就一定要在.equals("")之前。然而TextUtils.isEmpty();既可以判斷對象也可以判斷值。所以這個是我推薦的哦。我可是有過經驗教訓的。

 

 

3.場景三:這個不知道咋描述就是覺得很有用。

 

         在佈局中大家時常會多用相對佈局和線性佈局,但是相信我幀佈局也很好用。比如背景圖是有兩張圖片構成的。比如

   

       

這種效果的實現很多人就會頭疼,線性佈局橫向排布然後使用一個textview和一個edittext?對可以實現但是下面的橫線呢?再來一個控件?當然實現的辦法很多,完全可以自定義控件,那麼不用自定義控件如何去實現呢,哈哈,沒錯就是是使用幀佈局。上代碼:

 

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_margin="10dp" >


        <EditText
            android:id="@+id/act_logon_user"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/selector_login_editext_bg"//這裏由於在edittext獲得焦點的時候下面的線有變顏色的需求,所以就使用了selector可以理解爲狀態切換器,它是在drawable文件夾下的xml文件
            android:hint="你的手機號碼"
            android:inputType="phone"
            android:maxLength="11"
            android:paddingLeft="70dp"
            android:singleLine="true"
            android:textColorHint="@color/edit_hint"
            android:textSize="14sp" />


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:layout_marginLeft="10dp"
            android:text="+86"
            android:textColor="@color/heise2" />
    </FrameLayout>

 

回家啦!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章