2017-09-26 4 views
0

보기가 화면에 있는지 여부에 따라 탐색 바의 색상을 변경할지 여부를 결정할 수있는 방법이 있습니다. 이 방법은 작성되었지만 호출 방법은 모르겠습니다. 버튼 클릭 이벤트로이 메서드를 호출하지만 매우 어렵습니다. 이벤트 콜을 클릭하는 대신 자동으로 전화를 걸고 싶습니다. 어떻게해야합니까?기준에 따라 Android 탐색 바가 색상이 자동으로 바뀝니다.

public class Index extends Activity implements View.OnClickListener{ 
@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.index); 
} 

private void changeNavigationColour(View view){ 
     Point p = new Point(); 
     getWindowManager().getDefaultDisplay().getSize(p); 
     int[] loacation = new int[2]; 
     view.getLocationInWindow(loacation); 
     Toast.makeText(this, Arrays.toString(loacation),Toast.LENGTH_SHORT).show(); 
     Rect ivRect = new Rect(view.getLeft(),view.getTop(),view.getRight(),view.getBottom()); 
     LinearLayout head = (LinearLayout) findViewById(R.id.index_head); 
     if(view.getLocalVisibleRect(ivRect)){ 
      //Change the navigation color 
      head.setBackgroundColor(getResources().getColor(R.color.transparent)); 
     }else { 
      //Change the navigation color 
      head.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); 
     } 
} 
+0

문제를 이해하는 데 도움이되도록 노력 해주세요. –

+0

은 귀하의 코드를 보여줍니다. –

+0

이 '기준'변경에 대해 더 명확히해야합니다. 그게 무엇입니까? 어떻게 그걸 얻나요? –

답변

0

는 귀하의 의견을 바탕으로 당신이 당신이 또한이있을 필요가 PhoneStateListener

public class Index extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.index); 

     TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
     telephonyManager.listen(new myPhoneStateChangeListener(),PhoneStateListener.LISTEN_CALL_STATE); 
    } 

    public class myPhoneStateChangeListener extends PhoneStateListener { 
     @Override 
     public void onCallStateChanged(int state, String incomingNumber) { 
      super.onCallStateChanged(state, incomingNumber); 
      // call changeNavigationColour based on the state 

     } 
    } 
} 

를 사용할 수에 대한 전화 상태

에 따라 changeNavigationColour(View view)를 호출 할 필요가 보인다하여 매니페스트