If you think the Android project SmartNavi listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code
package org.osmdroid.bonuspack.overlays;
//www.java2s.comimport org.osmdroid.bonuspack.utils.BonusPackHelper;
import org.osmdroid.views.MapView;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
/**
* Default implementation of InfoWindow for an ExtendedOverlayItem.
* It handles a text and a description.
* It also handles optionally a sub-description and an image.
* Clicking on the bubble will close it.
*
* @author M.Kergall
*/
@Deprecated publicclass DefaultInfoWindow extends InfoWindow {
staticint mTitleId=BonusPackHelper.UNDEFINED_RES_ID,
mDescriptionId=BonusPackHelper.UNDEFINED_RES_ID,
mSubDescriptionId=BonusPackHelper.UNDEFINED_RES_ID,
mImageId=BonusPackHelper.UNDEFINED_RES_ID; //resource ids
privatestaticvoid setResIds(Context context){
String packageName = context.getPackageName(); //get application package name
mTitleId = context.getResources().getIdentifier("id/bubble_title", null, packageName);
mDescriptionId = context.getResources().getIdentifier("id/bubble_description", null, packageName);
mSubDescriptionId = context.getResources().getIdentifier("id/bubble_subdescription", null, packageName);
mImageId = context.getResources().getIdentifier("id/bubble_image", null, packageName);
if (mTitleId == BonusPackHelper.UNDEFINED_RES_ID || mDescriptionId == BonusPackHelper.UNDEFINED_RES_ID
|| mSubDescriptionId == BonusPackHelper.UNDEFINED_RES_ID || mImageId == BonusPackHelper.UNDEFINED_RES_ID) {
Log.e(BonusPackHelper.LOG_TAG, "DefaultInfoWindow: unable to get res ids in "+packageName);
}
}
public DefaultInfoWindow(int layoutResId, MapView mapView) {
super(layoutResId, mapView);
if (mTitleId == BonusPackHelper.UNDEFINED_RES_ID)
setResIds(mapView.getContext());
//default behavior: close it when clicking on the bubble:
mView.setOnTouchListener(new View.OnTouchListener() {
@Override publicboolean onTouch(View v, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_UP)
close();
return true;
}
});
}
@Override publicvoid onOpen(Object item) {
ExtendedOverlayItem extendedOverlayItem = (ExtendedOverlayItem)item;
String title = extendedOverlayItem.getTitle();
if (title == null)
title = "";
((TextView)mView.findViewById(mTitleId /*R.id.title*/)).setText(title);
String snippet = extendedOverlayItem.getDescription();
if (snippet == null)
snippet = "";
((TextView)mView.findViewById(mDescriptionId /*R.id.description*/)).setText(snippet);
//handle sub-description, hidding or showing the text view:
TextView subDescText = (TextView)mView.findViewById(mSubDescriptionId);
String subDesc = extendedOverlayItem.getSubDescription();
if (subDesc != null && !("".equals(subDesc))){
subDescText.setText(subDesc);
subDescText.setVisibility(View.VISIBLE);
} else {
subDescText.setVisibility(View.GONE);
}
//handle image
ImageView imageView = (ImageView)mView.findViewById(mImageId /*R.id.image*/);
Drawable image = extendedOverlayItem.getImage();
if (image != null){
imageView.setImageDrawable(image); //or setBackgroundDrawable(image)?
imageView.setVisibility(View.VISIBLE);
} else
imageView.setVisibility(View.GONE);
}
@Override publicvoid onClose() {
//by default, do nothing
}
}