2013-06-17 3 views
0

키보드로 작업 중이므로 어떤 버튼을 클릭하면 키보드가 기본 키보드로 표시됩니다. 더 큰 이미지는 버튼 위에 깜박이며,이 효과는 정확히 알지 못합니다. 아래 코드를 사용해 보았습니다. 내 Keyboard.xml에 클릭버튼을 클릭하면 플래시 이미지가 표시됩니다.

버튼 :

<Button android:id="@+id/xBack" 
     android:background="@drawable/back_high"/> 

back_high 위 내 XML 파일입니다. 파일이

back_high.xml,

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/back_click" 
      android:state_pressed="true" /> 
    <item android:drawable="@drawable/back" 
      android:state_focused="true" /> 
    <item android:drawable="@drawable/back" /> 
</selector> 

그 성공적으로 작동하지만, 이미지가 내가 클릭 같은 장소에 번쩍,하지만 안드로이드 기본에 일어나고으로, 위의 버튼에 표시되는 이미지를 필요로한다 건반.

+1

@ lcolwinters가 맞습니다 - 플래시 된 이미지에 대해 별도의 팝업이 필요합니다. 같은보기의 배경을 설정하는 중입니다. 용도와 관련이 없습니다. – auval

+0

@uval 괜찮아요. 팝업을 구현했고 저에게 잘 작동합니다. 한 가지 문제가 있습니다. 현재 클릭 한 뷰의 좌표가 필요합니다. 특정 버튼을 터치하면 별도의 이미지를 표시해야하기 때문입니다. – Aniket

+0

onTouch 이벤트 객체에서 좌표를 가져 오십시오. – auval

답변

0

버튼의 배경을 설정하려면 버튼 위에 표시하고 싶다면 프레임 레이아웃을 키보드의 전체 레이아웃으로 사용하고 추가로 이미지와 위치를 전환해야합니다. 버튼을 클릭하면 더 이상 선택기가 필요하지 않습니다.

프레임 레이아웃을 사용하면 여러보기를 서로 위에 놓을 수 있습니다.

+0

괜찮아요. 팝업을 구현하고 저에게 잘 작동합니다. 한 가지 문제가 있습니다. 현재 클릭 한 뷰의 좌표가 필요합니다. 특정 버튼을 터치하면 별도의 이미지를 표시해야하기 때문입니다. – Aniket

0

Link :

왜 UI 모드에서 프로그래밍이 아닌이하지?

어떤 종류의 깜박이는지에 따라 몇 가지가 있습니다. 예를 들어 알파 애니메이션을 사용하고 버튼이 처음 나타날 때이를 시작할 수 있습니다. 사용자가 버튼을 클릭하면 OnClickListener에서 clearAnimation()을 수행합니다.

예 :

또한 This Answer
public void onCreate(Bundle savedInstanceState) { 
    final Animation animation = new AlphaAnimation(1, 0); // Change alpha from fully visible to invisible 
    animation.setDuration(500); // duration - half a second 
    animation.setInterpolator(new LinearInterpolator()); // do not alter animation rate 
    animation.setRepeatCount(Animation.INFINITE); // Repeat animation infinitely 
    animation.setRepeatMode(Animation.REVERSE); // Reverse animation at the end so the button will fade back in 
    final Button btn = (Button) findViewById(R.id.your_btn); 
    btn.startAnimation(animation); 
    btn.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(final View view) { 
      view.clearAnimation(); 
     } 
    }); 
} 

.

관련 문제