Android Open Source - JiangHomeStyle_Android_Phone Pop Menu From Project Back to project page JiangHomeStyle_Android_Phone .
License The source code is released under:
Apache License
If you think the Android project JiangHomeStyle_Android_Phone 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 com.cidesign.jianghomestylephone.widget;
/ / w w w . j a v a 2 s . c o m
import java.util.HashMap;
import android.content.Context;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import com.cidesign.jianghomestylephone.R;
import com.cidesign.jianghomestylephone.tools.WidgetCache;
public class PopMenu
{
public static void initPopuWindow(Context ctx, View showLocation, int menuViewID,int screenWidth)
{
LayoutInflater mLayoutInflater = LayoutInflater.from(ctx);
/* ???????menu???? view??VIEW */
View sub_view = mLayoutInflater.inflate(menuViewID, null);
/* ????????????????view ????????????? */
final PopupWindow mPopupWindow = new PopupWindow(sub_view, screenWidth - 180, LayoutParams.WRAP_CONTENT);
/* ????????? */
mPopupWindow.setBackgroundDrawable(ctx.getResources().getDrawable(R.drawable.popbg));
/* ?????????????? */
mPopupWindow.setOutsideTouchable(true);
/* ?????????? */
// mPopupWindow.setAnimationStyle(R.style.mypopwindow_anim_style);
mPopupWindow.update();
mPopupWindow.setTouchable(true);
/* ?????menu?????????????????????? */
mPopupWindow.setFocusable(true);
/**
* 1.????????MENU?????????? 2.sub_view??PopupWindow????View
*/
sub_view.setFocusableInTouchMode(true);
sub_view.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
// TODO Auto-generated method stub
if ((keyCode == KeyEvent.KEYCODE_MENU) && (mPopupWindow.isShowing()))
{
mPopupWindow.dismiss();// ??????????menu??PopupWindow???????
return true;
}
return false;
}
});
/* ????MENU?? */
View[] menu = new View[4];
menu[0] = sub_view.findViewById(R.id.topLandscapeMenuBtn);
menu[1] = sub_view.findViewById(R.id.topHumanityMenuBtn);
menu[2] = sub_view.findViewById(R.id.topStoryMenuBtn);
menu[3] = sub_view.findViewById(R.id.topCommunityMenuBtn);
final HashMap<Integer , View> hashMap = WidgetCache.getInstance().getViewCache();
menu[0].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
((CustomScrollView) hashMap.get(R.id.mainScrollView)).smoothScrollTo(0,
(int ) ((ImageView) hashMap.get(R.id.landscapeBgImg)).getY());
mPopupWindow.dismiss();
}
});
menu[1].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
((CustomScrollView) hashMap.get(R.id.mainScrollView)).smoothScrollTo(0,
(int ) ((ImageView) hashMap.get(R.id.humanityBgImg)).getY());
mPopupWindow.dismiss();
}
});
menu[2].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
((CustomScrollView) hashMap.get(R.id.mainScrollView)).smoothScrollTo(0,
(int ) ((ImageView) hashMap.get(R.id.storyBgImg)).getY());
mPopupWindow.dismiss();
}
});
menu[3].setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
((CustomScrollView) hashMap.get(R.id.mainScrollView)).smoothScrollTo(0,
(int ) ((ImageView) hashMap.get(R.id.communityBgImg)).getY());
mPopupWindow.dismiss();
}
});
mPopupWindow.showAsDropDown(showLocation, 80, 0);
}
}
Java Source Code List com.cidesign.jianghomestylephone.DetailActivity.java com.cidesign.jianghomestylephone.JiangActivity.java com.cidesign.jianghomestylephone.MainActivity.java com.cidesign.jianghomestylephone.SplashActivity.java com.cidesign.jianghomestylephone.adapter.CommunityViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.HumanityViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.LandscapeViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.LayoutCaculateAdapter.java com.cidesign.jianghomestylephone.adapter.StoryViewpagerAdapter.java com.cidesign.jianghomestylephone.async.AsyncDownTask.java com.cidesign.jianghomestylephone.async.AsyncInitCommunityData.java com.cidesign.jianghomestylephone.async.AsyncInitData.java com.cidesign.jianghomestylephone.async.AsyncInitHomeData.java com.cidesign.jianghomestylephone.async.AsyncInitHumanityData.java com.cidesign.jianghomestylephone.async.AsyncInitLandscapeData.java com.cidesign.jianghomestylephone.async.AsyncInitStoryData.java com.cidesign.jianghomestylephone.db.DatabaseConfigUtil.java com.cidesign.jianghomestylephone.db.DatabaseHelper.java com.cidesign.jianghomestylephone.entity.ArticleEntity.java com.cidesign.jianghomestylephone.entity.FileListEntity.java com.cidesign.jianghomestylephone.entity.LayoutEntity.java com.cidesign.jianghomestylephone.entity.RelativeLayoutRulesEntity.java com.cidesign.jianghomestylephone.http.ArticalOperation.java com.cidesign.jianghomestylephone.http.DownLoadThread.java com.cidesign.jianghomestylephone.service.DownloadService.java com.cidesign.jianghomestylephone.tools.CategoryDataLoadingLogic.java com.cidesign.jianghomestylephone.tools.FileOperationTools.java com.cidesign.jianghomestylephone.tools.JiangCategory.java com.cidesign.jianghomestylephone.tools.LayoutMarginSetting.java com.cidesign.jianghomestylephone.tools.LoadingDataFromDB.java com.cidesign.jianghomestylephone.tools.LoadingImageTools.java com.cidesign.jianghomestylephone.tools.MD5Tools.java com.cidesign.jianghomestylephone.tools.StorageUtils.java com.cidesign.jianghomestylephone.tools.TimeTools.java com.cidesign.jianghomestylephone.tools.WidgetCache.java com.cidesign.jianghomestylephone.tools.XmlParseTools.java com.cidesign.jianghomestylephone.version.NetworkTool.java com.cidesign.jianghomestylephone.version.VersionConfig.java com.cidesign.jianghomestylephone.version.VersionUpdate.java com.cidesign.jianghomestylephone.widget.CommunityRelativeLayout.java com.cidesign.jianghomestylephone.widget.CustomScrollView.java com.cidesign.jianghomestylephone.widget.HScrollViewTouchLogic.java com.cidesign.jianghomestylephone.widget.HumanityRelativeLayout.java com.cidesign.jianghomestylephone.widget.LandscapeRelativeLayout.java com.cidesign.jianghomestylephone.widget.PopMenu.java com.cidesign.jianghomestylephone.widget.StoryRelativeLayout.java org.apache.tools.zip.AbstractUnicodeExtraField.java org.apache.tools.zip.AsiExtraField.java org.apache.tools.zip.CentralDirectoryParsingZipExtraField.java org.apache.tools.zip.ExtraFieldUtils.java org.apache.tools.zip.FallbackZipEncoding.java org.apache.tools.zip.GeneralPurposeBit.java org.apache.tools.zip.JarMarker.java org.apache.tools.zip.NioZipEncoding.java org.apache.tools.zip.Simple8BitZipEncoding.java org.apache.tools.zip.UnicodeCommentExtraField.java org.apache.tools.zip.UnicodePathExtraField.java org.apache.tools.zip.UnixStat.java org.apache.tools.zip.UnparseableExtraFieldData.java org.apache.tools.zip.UnrecognizedExtraField.java org.apache.tools.zip.UnsupportedZipFeatureException.java org.apache.tools.zip.Zip64ExtendedInformationExtraField.java org.apache.tools.zip.Zip64Mode.java org.apache.tools.zip.Zip64RequiredException.java org.apache.tools.zip.ZipConstants.java org.apache.tools.zip.ZipEightByteInteger.java org.apache.tools.zip.ZipEncodingHelper.java org.apache.tools.zip.ZipEncoding.java org.apache.tools.zip.ZipEntry.java org.apache.tools.zip.ZipExtraField.java org.apache.tools.zip.ZipFile.java org.apache.tools.zip.ZipLong.java org.apache.tools.zip.ZipOutputStream.java org.apache.tools.zip.ZipShort.java org.apache.tools.zip.ZipUtil.java