2016年12月23日 星期五

Android NavigationView



NavigationView详解
NavigationView实现侧滑菜单
NavigationView 的使用
Android5.0之NavigationView的使用

2016年12月9日 星期五

android 透明度 對照表





透明度转换可以参照下表:
透明度对应十六进制
100%ff
90%e6
85%d9
80%cc
70%b3
60%99
50%80
40%66
30%4d
20%33
15%26
10%1a
5%0d
0%00
 

2016年12月7日 星期三

Android EditText 禁止換行







在EditText的xml文件中通過配置android:singleLine="true"把虛擬鍵盤上的enter鍵禁止掉,不會顯示。


  <EditText
        android:layout_width="fill_parent"
        android:layout_height="38dp"
        android:id="@+id/loginUserNameEdit"
      android:background="@android:color/white"
      android:paddingLeft="10dp"
      android:maxLines="1"
      android:singleLine="true"
        />

2016年12月1日 星期四

Android─Dialog顯示時,不能按home與back button及dialog以外的區域






setCanceledOnTouchOutside  

設為true為可以點選dialog以外範圍的區域,false則是不行

setCancelable

設為true為可以點選back button,false則是不行

2016年11月30日 星期三

Android 自學筆記 201611330 json 撈取寫法

Android 自定義 Dilog error 問題





 FATAL EXCEPTION: main
                                                                                  Process: com.rich.app.designeddriver.user, PID: 23435
                                                                                  android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
                                                                                      at android.view.ViewRootImpl.setView(ViewRootImpl.java:600)
                                                                                      at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
                                                                                      at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)

問題解決

不能使用getApplicationContext()得到的context,而必须使用Activity,所以解决如下

android EditText 限制字數 顯示數字鍵盤





首先设置只能输入数字
<EditText  
    android:id="@+id/edit_digit_input"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
    android:digits="1234567890."  
    android:singleLine="true"   
    />
重点是
android:digits="1234567890."        
EditText中android:digits属性的作用
是设置允许输入哪些字符。如“1234567890.+-*/%\n()” 
再在代码里面设置输入法类型:
editText.setInputType(EditorInfo.TYPE_CLASS_PHONE);
则如果该EditText获得焦点,会弹出数字输入法的模拟键盘

以EditText這個View為例,如果要限制EditText輸入文字的最大長度,可以設定它的「maxLength」屬性。在XML下,可以替EditText加入這個屬性,並指定最大的文字長度。如下面的XML語法,將EditText的可輸入的最大字元數量限制在10個:
如果要用Android SDK的Java程式來寫,會比較麻煩一點,可以寫成這樣:

android 檢查email 檢查手機

2016年11月29日 星期二

Android 自學筆記20161129 自定義dilog





Xml


CODE

Systle

Android 設置dialog背景全透明無邊框的最簡單的方法





做dialog的全透明無邊框背景,網上找了n久,都有問題,其實很簡單,就兩句搞定。
<style name="Translucent_NoTitle" parent="android:style/Theme.Dialog">

<item name="android:background">​​#00000000</item> <!-- 設置自定義佈局的背景透明-->
<item name="android:windowBackground">​​@android:color/transparent</item> <!-- 設置window背景透明,也就是去邊框-->
</style>

其他的都可以不用設置,有些屬性會繼承下來,唯一一個沒被繼承的是 <item name=" android:windowIsTranslucent ">true</item>,這個不設置也沒影響
此方法同樣可以用於activity,設置activity半透明
複製代碼
res/values/ styles.xml

<resources>  
  <style name="Transparent ">  
    <item name="android:windowBackground">​​@color/transparent_background</item>  
    <item name="android:windowNoTitle"> true </item>  
    <item name="android:windowIsTranslucent"> true </item>    
    <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>  
  </style>  
</resources>  
複製代碼
複製代碼
res/values/ color.xml

<?xml version="1.0" encoding="utf-8"?>  
<resources>  
  <color name="transparent_background">​​#50000000</color>  
</resources>  
複製代碼
注意:color.xml的#5000000前兩位是透明的效果參數從00--99(透明--不怎麼透明),後6位是顏色的設置 
manifest.xml

<activity android:name=".TransparentActivity" android:theme="@style/Transparent">  
</activity>  

【教學】Android Dialog 的 Layout 透明化教學

  大家在開發 App 時,是否想設計一個自己專屬的 Dialog ,把 Dialog 的背景變成透明呢?
  別急別急~
  僅需四個步驟就能達成願望囉!
  讓我們來瞧瞧該怎麼做吧!

  首先你要先準備一份你自己設計的 Dialog 背景圖,本文背景圖的名稱為 dialog_bg.png,切記如果不想風格只有四四方方的話,一定要用 png 檔,這樣才能使你的 Dialog 不再是四方形。

  接著是設定 Dialog 的風格,你在 drawable 中建置一份 xml ,名稱可以自訂,本文文件為 selector_dialog_bg.xml ,若沒有 drawable 的資料夾,則自己創建一份即可。
路徑:res/drawable/selector_dialog_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"><!--形狀-->

    <!--內容-->
    <solid android:color="#00000000"/>

    <!--邊框-->
    <stroke  
        android:width="5dp"  
        android:color="#0099CC33" />

    <!--內容物件的距離-->
    <padding 
        android:left="5dp" 
        android:top="5dp" 
        android:right="5dp" 
        android:bottom="5dp" />

    <!--框角矩形的程度-->
    <corners android:radius="5dp" />
</shape>


  再來是設定 Dialog layout 的風格,你要在一份叫 styles.xml 的文件中進行編輯,而編輯的內容與功能依照下方指令設定即可。
路徑:res/values/styles.xml
<style name="selectorDialog" parent="@android:style/Theme.Dialog">
    <!-- 邊框 -->
    <item name="android:windowFrame">@null</item>
    <!-- 是否浮现在activity之上 -->
    <item name="android:windowIsFloating">true</item>
    <!-- 整個 layout 半透明 -->
    <item name="android:windowIsTranslucent">true</item>
    <!-- 拿掉標題 -->
    <item name="android:windowNoTitle">true</item>
    <!-- 背景透明 -->
    <item name="android:windowBackground">@drawable/selector_dialog_bg</item>
    <!-- 由 XML 設定 Dialog 視窗是否變暗 -->
    <item name="android:backgroundDimEnabled">true</item>
    <!-- 亮度從 0 到 1.0 -->
    <item name="android:backgroundDimAmount">0.2</item>
</style>


  來到 layout 的部分,裡頭的 xml 有兩份,一份為進到 Activity 時對應的 xml ,一份則為呼叫 Dialog 時對應的 xml ,本文分別為 activity_dialog_bg02.xml 與 dialog_mod.xml 。

路徑:res/layout/activity_dialog_bg02.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#00ffff" >

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Show dialog" />

    <TextView
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Activity word is blue."
        android:textColor="#0000ff"
        android:textSize="50dp" />

</RelativeLayout>


路徑:res/layout/dialog_mod.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg" >

    <TextView
        android:layout_width="230dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="100dp"
        android:text="Dialog word is red."
        android:textColor="#ff0000"
        android:textSize="40dp" />

</RelativeLayout>


  最後來到程式的部分囉!在這個部份我們將會對物件進行實體化,並且進行操作設定。
名稱:DialogBG02
@SuppressLint("NewApi")
public class DialogBG02 extends Activity {
    private Button btn_show;
    private Dialog dialog;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog_bg02);

        btn_show = (Button) this.findViewById(R.id.btn);
        btn_show.setOnClickListener(new OnClickListener() { 
            @Override
            public void onClick(View v) {
            // 設定模組與 Dialog 的風格
            dialog = new Dialog(DialogBG02.this, R.style.selectorDialog);
            dialog.setContentView(R.layout.dialog_mod);
   
            // 由程式設定 Dialog 視窗外的明暗程度, 亮度從 0f 到 1f
            WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
            lp.dimAmount=0.2f;
            dialog.getWindow().setAttributes(lp);
   
            dialog.show();
            }
        });
    }
}