Android開発経験Tips(4)

5477 ワード

毎回更新して开いて発小技巧O(∩∩)O~
1.compileSdkVarsion、minSdkVarsion、targetSdkVarsionの選択方法
理想的には、安定した状態では、3つの関係はもっとこのようになるはずです.
minSdkVersion (lowest possible) <= 
    targetSdkVersion == compileSdkVersion (latest SDK)

最も大きい群を低いminSdkValersonでカバーし,最新のSDKでtargetとcompileを設定して,最良の外観と挙動を得た.
2. notification.setLatestEventInfo 6.0で廃棄された代替方法
Notification.Builder builder = new Notification.Builder(mContext);
        builder.setContentTitle(title);
        builder.setContentText(text);
        builder.setSmallIcon(R.drawable.icon);
        builder.setContentIntent(pendingIntent);
        builder.setWhen(System.currentTimeMillis());
        builder.setVibrate(vibrate);
        Notification notification = builder.getNotification();
        notification.flags = Notification.FLAG_AUTO_CANCEL;
        notification.defaults |= Notification.DEFAULT_VIBRATE;
...

3. FloatMath.sqrt()が見つかりません
   (float)Math.sqrt()

4. LocalBroadcastManager
Android v 4互換パッケージはandroidを提供します.support.v4.content.LocalBroadcastManagerツールクラスは、sendBroadcast(Intent)を直接送信するシステムよりも、自分のプロセス内でローカルブロードキャストの送信と登録を支援します.1放送データが本アプリケーションの範囲内で伝播しているため、プライバシーデータの漏洩の問題を心配する必要はありません.2他のアプリケーションが放送を偽造し、安全上の危険をもたらす心配はありません.3システム内でグローバルブロードキャストを送信するよりも効率的です.
ブロードキャスト登録:
LocalBroadcastManager localBroadcastManager = LocalBroadcastManager.getInstance(getActivity());
   IntentFilter filter = new IntentFilter();
   filter.addAction(ACTION);
   myBroadcastReciver = new MyBroadcastReciver();
   localBroadcastManager.registerReceiver(myBroadcastReciver, filter);

ブロードキャスト送信:
   Intent intent = new Intent();
   intent.setAction(SaleLeftFragment.ACTION);
   intent.putExtra(TAG, data);
   LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);

使用上の注意:1).LocalBroadcastManager登録ブロードキャストはコード登録のみ可能です.2).LocalBroadcastManagerでブロードキャストを登録した後、必ずリスニングをキャンセルしてください.3).ポイントポイントは、LocalBroadcastManagerに登録されているブロードキャストを使用します.ブロードキャストを送信するときは必ずLocalBroadcastManagerを使用してください.sendBroadcast(intent);ブロードキャストを受信できません.
5.dialogフルスクリーンの設定方法
        //     
        WindowManager.LayoutParams p = this.getWindow().getAttributes();
        //        
        p.width = UtilPhoneParam.screenWidth;
        p.height = UtilPhoneParam.screenHeight;
        this.getWindow().setAttributes(p);

6.RelativeLayout水平中央等分を使用
            

                

7. 在代码中修改Shape的solid属性的color值

GradientDrawable drawable =(GradientDrawable)view.getBackground();
drawable.setColor(getResources().getColor(color));

8.shapeを使用してリスト分割線を設定する




注意リスト背景色backgroundの設定
9.依存除外
comを除外する.kevin:crop:1.0.2のv 7パッケージは、プロジェクトappに導入されたv 7を使用します.
    compile('com.kevin:crop:1.0.2') {
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }

10.ある方向のTextViewのdrawableを設定する
tvText.setCompoundDrawablesWithIntrinsicBounds(getResources().getDrawable(R.drawable.icon),null,null,null);

11.android:clipToPaddingの使用
主な用途:paddingTopでよく使用されます.内部にpaddingTopが設定されていると仮定しますが、スライドするときにpaddingTopの空間が一緒にスライドできない場合は、この属性を使用して設定します.
Android:clipToPadding=false

リストのpaddingTopを一緒にスライドさせることができます.
12.Androidアプリケーションにおける戻りキーの傍受および処理
  • super.onBackPressed()はfinish()メソッドを自動的に呼び出し、現在のActivityを閉じます.Backキーボードを遮蔽するには、行コードを注釈すると
  • になります.
            @Override  
            public void onBackPressed() {  
                super.onBackPressed();  
                System.out.println("   back    onBackPressed()");         
            }  
              
    
  • onKeyDownの戻り値は、このイベントがここでfalseに戻るのを完全に処理できるか否かを示すので、このイベントの伝播を継続する.具体的な項目におけるここでの戻り値は状況によって異なる.
  • @Override  
            public boolean onKeyDown(int keyCode, KeyEvent event) {  
                if ((keyCode == KeyEvent.KEYCODE_BACK)) {  
                     System.out.println("   back    onKeyDown()");   
                     return false;  
                }else {  
                    return super.onKeyDown(keyCode, event);  
                }  
                  
            }  
    

    その他の関連記事
    Android開発経験Tips(1)http://www.jianshu.com/p/c2c8ccd53636Android開発経験Tips(2)http://www.jianshu.com/p/21bc9c2a6563Android開発経験Tips(3)http://www.jianshu.com/p/79c417568075