본문 바로가기

Android

android studio 사라지는 프레임

반응형

터치가 들어가는 영역을 id로 잡아서

Activity에서 가져옴. panel이 나와있는 상태에서 한번더 터치할 때 사라지고

다른 영역이 터치될 때도 사라지도록 함.

 

 

버터나이프 쓸 때 

ButterKnife.bind(this); 넣는거 잊지말기.

 

 

@BindView(R.id.out)
FrameLayout out;
@BindView(R.id.picture)
LinearLayout map;

@OnClick({R.id.out})
public void OnClick(View v){  //View 형식의 매개변수를 받는 이유는 모든 형을 커버함. Linear,Frame 형에 따라 각각                                         //안 만들어줘도됨.
if(v.equals(map)){
showPanel(!misShow);   //만약 영역이 터치 되었다면 showPanel 함수를 호출하는데 인자는 반대의 경우로 넣어줌
}

}
boolean misShow = false ;

 

 

 

 

public void showPanel (boolean Show){
map.setVisibility(View.VISIBLE);  //영역이 터치가 되면 우선 화면을 띄움.
if(Show){

misShow=true;                                    //현재 화면이 띄워져 있으므로 true로 변환.
float distance= TypedValue.applyDimension//만약 Show가 트루인경우 즉, 터치가 화면이 없던 상태에서 눌린 경우는
TypedValue.COMPLEX_UNIT_DIP,0,            //유지 해야 하므로 TypedValue.COMPLEX_UNIT_DIP,0으로                                                                          //applyDimension을 해줌 수직길이를 0으로 만든단 소리임.
getResources().getDisplayMetrics()            

);
map.animate().translationY(distance).setDuration(700); //화면을 7초 동안 이동 시키는데 0만큼 이동시키니 7초동안 안                                                                        //움직이는 것 처럼 보임 함수가 끝나면 다시 GONE됨.(사라짐)
}else{

misShow=false;                                                           
float distance= TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,200,               //Show가 false인경우는 화면이 띄워진 상태에서 눌린것이므로 내려                                                                //가야됨 거리값을 layout의 height값으로 줌.
getResources().getDisplayMetrics()                  

);
map.animate().translationY(distance).setDuration(700); // 7초동안 height만큼 움직임. 함수 끝나면 마찬가지로 GONE

}

 

 

android:visibility="gone"  //layout에서 선언해서 평소에는 안보이도록 설정.

반응형

'Android' 카테고리의 다른 글

Android studio 딜레이 생성.  (0) 2019.07.10
Android studio text를 String객체로 빼오기.  (0) 2019.07.09
android studio v7 에러 해결.  (0) 2019.07.05
Android studio intent 화면전환  (0) 2019.07.04
Android studio 클릭이벤트  (0) 2019.07.04