在我的Android 2.2.2设备上,画廊看起来非常好.我想在自己的应用程序中做的是按一个按钮,然后显示如下所示的菜单:

这是使用任何标准的Android主题/样式?有没有人知道有这样一个菜单的示例代码?
编辑:我发现用一个Dialog可以模仿这个菜单.为了简化这个例子,我在这个例子中没有使用ListView,只是对话框的一个TextView条目:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
android:padding="10dp"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
按下按钮时显示对话框:
Dialog dialog = new Dialog(MyActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Test option 1");
WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes();
WMLP.gravity = (Gravity.BOTTOM | Gravity.LEFT);
WMLP.x = 0;
WMLP.y = 0;
dialog.getWindow().setAttributes(WMLP);
dialog.show();
Run Code Online (Sandbox Code Playgroud)
这将创建一个靠近图片菜单的对话框.不过我还有两个问题:
1)如何在对话框底部绘制这个小三角形,如上图所示?
2)应该打开对话框的按钮水平放置在底部按钮栏的中间.因此,当我按下它时,对话框应显示在该按钮的正上方.我想做的是:
WMLP.x = middleButton.getLeft() + (middleButton.getWidth() / 2) - dialog.getWindow().getDecorView().getPaddingLeft() - (WMLP.width / 2);
Run Code Online (Sandbox Code Playgroud)
问题是,WMLP.width是-2.我想原因是布局宽度设置为"wrap_content"(即-2),此时不知道实际宽度.那么,我如何确定对话框的宽度,以便我可以将它同心放在另一个视图上?
更新:我终于找到了一个很好的对话源,如下所示:http: //www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/
这正是我想要的,我现在正在我的应用程序中使用它.
我只是看着Java String类的.indexOf()方法的实现,似乎代码的作者使用强力算法来查找给定字符串中的子字符串.也就是说,该方法在O(mn)中运行,其中m和n分别是源和目标字符串的长度.
为什么作者没有使用像Rabin-Karp这样的更有效的算法,如果提供了良好的哈希函数,它的运行时复杂度为O(m + n)?
我可能会错过这个实现原因背后的完整知识,因此想要了解.
我有这个数据集:
LP3I22- M5
01174c-qbFD.raw
L2P2 + p LPI Full ms [150.00-1500.00]
Scan #: 1
RT: 6.11
m/z Intensity Relative Resolution Charge Baseline
150.0119 67.3 0.00 152545.44 0.00 26.27
150.0153 59.3 0.00 269991.72 0.00 26.28
150.0156 66.1 0.00 288504.16 0.00 26.28
150.0161 67.2 0.00 172425.14 0.00 26.28
150.0330 78.9 0.00 167957.34 0.00 26.32
150.0485 75.0 0.00 208783.14 0.00 26.35
150.0603 166.2 0.00 220081.53 0.00 26.37
150.0624 75.8 0.00 189976.39 0.00 26.38
150.0866 70.1 0.00 233127.77 0.00 26.42
150.0991 54.8 0.00 193755.25 …Run Code Online (Sandbox Code Playgroud) 我需要写一个Servlet或者Filter类可以访问到org.apache.catalina.connector.Request对象,它被包裹在给我的servlet的RequestFacade对象.由于RequestFacade不是Request的子类,因此转换不起作用.
我需要这个的原因是因为我试图调用Request的setRequestedSessionId()方法,这显然不是Http servlet规范的一部分.我需要这样做的原因是因为会话ID以不同于JSESSIONID的名称包含在URL中.我无法更改参数的URL或名称,因此我尝试通过提取会话ID并调用Request.setRequestedSessionId()来将请求与正确的会话相关联.
其实我已经解决了使用阀子类的问题,而是因为据我所知,我需要安装在Tomcat /服务器/ classes目录下我的阀门,而不是子类,其余包装它的,我不喜欢使用阀我的webapp.如果有一种可移植的方式在不同的Servlet容器中执行此操作,那将是很好的,但目前我已经辞职,使这个特定于Tomcat.
这是工作的阀门代码:
public class SessionSetter extends ValveBase {
public void invoke( Request request, Response response ) throws IOException, ServletException {
String sessionId = request.getParameter( "whatever" );
request.setRequestedSessionId( sessionId );
}
Run Code Online (Sandbox Code Playgroud)
}
有没有办法在Servlet或Filter中做同样的事情?或者有没有办法在我的应用程序.war文件中打包Valve类?
我正在开发一个我从头开始编写的网站,在firebug中,css文件显示为:style.css.pagespeed.ce.5d2Z68nynm.css,其中包含pagespeed扩展名.任何人都可以告诉我这是做什么的,因为我找不到它.我猜mod-pagespeed可能在服务器上运行?我想暂时关闭它,因为它正在缓存我的css并停止更新,这对于开发来说真的很烦人.
提前致谢.
我公司的政策对自动下载的工件(它们必须得到批准)不满意,所以为了使用Maven,我需要禁用对Maven中央存储库的访问.
换句话说,我不希望Maven尝试从中央进行任何下载.
我知道如何配置本地存储库(联网或不联网),我的想法是使用"祝福"机器来更新本地存储库.
PS:我可以阻止代理/网络级别的请求,但我问的是如何使用Maven的配置.
更新
我终于想出了如何做到这一点.在maven的家中,conf目录中是全局的settings.xml.您可以将镜像设置为central指向某个内部服务器,也可以覆盖它的定义.
如果我运行bundle install,应用程序通过,一切都已正确安装.
但是,如果我重新启动nginx并访问该网站,我会看到Passenger Error消息.
Ruby (Rack) application could not be started
Error message:
http://github.com/railsdog/spree.git (at master) is not checked out. Please run `bundle install` (Bundler::GitError)
Exception class:
PhusionPassenger::UnknownError
Application root:
/home/shadyfront/webapps/age_of_revolt/releases/20110214205657
Run Code Online (Sandbox Code Playgroud)
我也发现了这个:
如果我做一个捆绑显示狂欢,它返回:
/home/shadyfront/webapps/rails/gems/bundler/gems/spree-594cd0f5a53c
Run Code Online (Sandbox Code Playgroud)
但任何其他宝石都在这里:
/home/shadyfront/webapps/rails/gems/gems/ what does that mean?
Run Code Online (Sandbox Code Playgroud)
谁知道为什么会这样?
的Gemfile
source 'http://rubygems.org'
gem 'rails', '3.0.3'
gem 'spree', '0.5.99', :git => 'http://github.com/spree/spree.git'
gem 'haml'
gem 'ruby-debug'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem 'ckeditor', '3.4.2.pre'
# aged_revolt gem is a local gem that is generated with Spree extensions …Run Code Online (Sandbox Code Playgroud)