Back to project page smartnavi.
The source code is released under:
Apache License
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.
package org.osmdroid.bonuspack.overlays; /* w w w .j av a 2 s.c o m*/ 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; import org.osmdroid.bonuspack.utils.BonusPackHelper; import org.osmdroid.views.MapView; /** * 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 public class DefaultInfoWindow extends InfoWindow { static int mTitleId = BonusPackHelper.UNDEFINED_RES_ID, mDescriptionId = BonusPackHelper.UNDEFINED_RES_ID, mSubDescriptionId = BonusPackHelper.UNDEFINED_RES_ID, mImageId = BonusPackHelper.UNDEFINED_RES_ID; //resource ids 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 public boolean onTouch(View v, MotionEvent e) { if (e.getAction() == MotionEvent.ACTION_UP) close(); return true; } }); } private static void 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); } } @Override public void 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 public void onClose() { //by default, do nothing } }