Toast.makeText (...)와 비슷한 기능을 만들어야하지만 더 빨리 사라질 필요가 있습니다. 나는 당신이 툴바에서 버튼을 선택할 때 소프트웨어 "Le monde fr"에서 그런 messagebox를 보았다. 다른 아이콘으로 이동하면 매우 빠르게 나타나고 사라집니다. 나는 같은 기능을하기를 원하지만 그렇게하는 법을 알 수는 없다. Messagebox는 모달이 아니어야합니다. 원하는 것은 빠른 툴팁입니다. 툴팁이 나타나서 빨리 사라져야합니다. 어떤 아이디어?ANDROID 아래에 빠른 자동 닫기 메시지 상자를 만드는 방법은 무엇입니까?
답변
PopupWindows를 통해 도구 설명을 수행 할 수 있습니다. 나는 당신이 아이콘 그리드를 가지고 있다고 가정하고 시간에 따라 또는 다른 아이콘을 클릭하여 사라지는 도구 팁을 제공하고자합니다 - 내가 틀렸다면 나를 수정하십시오 :
글로벌 mPopupWindow를 생성하고 새로운 한 번씩. 스크롤 리스너에서 시간 또는 코드를 기반으로 해지하는 스레드를 사용할 수 있습니다.
PopupWindow mPopupWindow = null;
mIconButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mPopupWindow != null) {
mPopupWindow.dismiss();
mPopupWindow = null;
}
TextView tv = new TextView(getApplicationContext());
tv.setText(tooltipText);
tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon,
0, 0, 0);
mPopupWindow = new PopupWindow(tv);
mPopupWindow.setWindowLayoutMode(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
mPopupWindow.showAsDropDown(v);
// write threads to disable it based on time as well
}
});
매우 intersting, 난 그것에 대해 몰랐어요 ! – Fabien
토스트 알림 기간을 변경해 보셨습니까?
Toast.makeText(context, "My message", Toast.LENGTH_SHORT).show();
I 알림이 표시하고 짧은 기간을 사용자가 확인하고 토스트를 판독하는 데 걸리는 최소 시간에 최적화 된 임의 이보다 빨리 사라지는 데주의 할 것이다.
TimerTask task = new TimerTask() {
@Override
public void run() {
// make sure to cancel the Toast in UI thread
runOnUiThread(new Runnable() {
@Override
public void run() {
toast.cancel();
}
});
}
};
실행 취소 작업을 한 후 지정된 :
Timer timer = new Timer();
가 Toast
객체를 취소 작업을 만듭니다
final Toast toast = Toast.makeText(this, "message", Toast.LENGTH_SHORT);
는 Timer 객체를 만듭니다
나는 시도했지만 갤러리 위젯에서 툴바를 만들었습니다. 도구 모음을 스크롤하여 매우 짧은 툴팁을 표시하고자했습니다. 표준 토스트 길이 LENGTH_SHORT이 너무 깁니다. 마지막 이미지/버튼으로 빨리 스크롤 할 때 도구 모음에있는 이전 이미지의 오래된 토스트 텍스트가 사라질 때까지 많은 시간이 걸릴 수 있습니다. – Fabien
이렇게하면됩니다. 텍스트 뷰 (R.id.text)가있는 사용자 정의 토스트를 만듭니다. CountDownTimer 클래스에서 확장되는 클래스를 사용하여 축배를 표시 할 시간을 제어합니다.
예 : MyCount counter = new MyCount (5000,1000);
은 5 초 동안 축배를 보여줍니다. 원하는 결과를 얻으려면 값을 낮추십시오.
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate (R.layout.toastxml, (ViewGroup) findViewById (R.id.toast_layout_root)); 토스터 = 새로운 토스트 (this); toast.setView (layout);
TextView text = (TextView) layout.findViewById (R.id.text); text.setText ("안녕하세요! 맞춤 토스트입니다!");
MyCount 카운터 = 새 MyCount (5000,1000); 카운터.스타트();
클래스 반 환이 CountDownTimer를 확장 {이 당신을 도울 수
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
toast.cancel();
}
@Override
public void onTick(long millisUntilFinished) {
toast.show();
}
}
도 흥미 롭습니다! – Fabien
: http://groups.google.com/group/android-developers/browse_thread/thread/edf69019754e565b – Pentium10