有没有一种简单的方法可以创建可扩展/可折叠的块,就像在官方市场应用程序中看到的那样?
市场应用程序的屏幕截图,当您单击"更多"按钮时,描述部分将展开动画:

我知道SlidingDrawer但它似乎不适合这样的东西 - 它应该被放在叠加中,并且不支持半开状态.
更新:
这是我的半工作解决方案.这是一个扩展的自定义小部件LinearLayout.它很有用,但不能很好地处理边缘情况,比如内容高度小于collapsedHeight参数.我确信有足够的凝视力,挖掘代码并试验怪癖可以修复.希望避免这样做,并通过使用现成的官方或第三方解决方案节省一些时间.无论如何,这里是代码:
package com.example.androidapp.widgets;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.widget.LinearLayout;
import com.example.androidapp.R;
public class ExpandablePanel extends LinearLayout {
private final int mHandleId;
private final int mContentId;
private View mHandle;
private View mContent;
private boolean mExpanded = true;
private int mCollapsedHeight = 0;
private int mContentHeight = 0;
public ExpandablePanel(Context context) {
this(context, null);
}
public ExpandablePanel(Context context, AttributeSet attrs) {
super(context, …Run Code Online (Sandbox Code Playgroud) 我的Android应用程序包含Twitter API的OAuth消费者秘密.目前它.properties以纯文本形式存档,因此有人无需花费精力在APK中查找.
我是否应该采取措施来掩盖它(例如,rot13或存储在混淆的Java代码中)?或者我应该避免做任何这样的事情,因为它会造成虚假的安全感?
人们通常如何在Android应用中分发/存储OAuth秘密?这个秘密被盗和被滥用的常见程度如何?
我正在使用RESTful API构建基于Pylons的Web应用程序,该API目前缺少任何身份验证.所以我要实现它,为了避免存储用户密码的所有麻烦和谨慎,我想使用OpenID进行身份验证.最好的方法是什么?这两件事是否兼容?是否存在使用OpenID的现有REST API,我可以从中获取灵感?
我的应用程序正在录制来自手机麦克风的音频,并对其进行实时处理.它在物理设备上工作正常,但在模拟器中表现得很"有趣".它记录了一些东西,但我不太确定它的录音是什么.
看起来在仿真器上,音频样本的读取速率是实际设备的两倍.在应用程序中,我有一个可视化进度小部件(一个水平移动的记录头),它在模拟器中移动大约两倍.
这是录音循环:
int FREQUENCY = 44100;
int BLOCKSIZE = 110;
int bufferSize = AudioRecord.getMinBufferSize(FREQUENCY,
AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT) * 10;
AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.CAMCORDER,
FREQUENCY, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
bufferSize);
short[] signal = new short[BLOCKSIZE * 2]; // Times two for stereo
audioRecord.startRecording();
while (!isCancelled()) {
int bufferReadResult = audioRecord.read(signal, 0, BLOCKSIZE * 2);
if (bufferReadResult != BLOCKSIZE * 2)
throw new RuntimeException("Recorded less than BLOCKSIZE x 2 samples:"
+ bufferReadResult);
// process the `signal` array here
}
audioRecord.stop();
audioRecord.release();
Run Code Online (Sandbox Code Playgroud)
音频源设置为"CAMCORDER"并以立体声录制.这个想法是,如果手机有多个麦克风,应用程序将处理来自两者的数据并使用具有更好SNR的任何一个.但如果录制单声道,我也有同样的问题 …
我试图了解start_periodDocker Compose 的工作原理。如果我们进行以下健康检查:
--start-period=60s --retries=2
Run Code Online (Sandbox Code Playgroud)
这是否意味着 Docker Swarm 会尝试两次,每次等待 60 秒才认为容器不健康?
谢谢。
我想在我的服务发送的电子邮件的页脚中提供一个单击“取消订阅”链接。
显然,许多垃圾邮件扫描程序会扫描电子邮件,并会按照电子邮件中的任何链接扫描其内容中的恶意软件。到目前为止我使用的解决方法:
这样,用户通常只需要单击表单,他们就会收到“您已取消订阅”的消息。如果他们禁用了 JS,他们仍然可以手动提交确认表。
现在的问题是,像Office365的ATP这样的扫描器会打开页面,并在其中执行JS。通过执行 JS,他们提交表单并导致用户自动取消订阅。
我已经考虑向自动提交 JS 逻辑添加检查:
但这些似乎都是脆弱的方法,充其量是黑客攻击,随着电子邮件扫描仪改变他们的策略,这些方法必然会被破坏。
我相信这个问题在我之前有很多人。除了放弃单击功能之外,是否有已知的合理解决方法?
附注。我已经添加了对RFC 8058 的支持,但用户仍然会点击页脚中的链接。
当我对即将实现的新功能或者我刚刚"理解"的错误感到兴奋时,就会有冲动进入代码并进行黑客攻击.需要一些努力来阻止自己这样做并首先编写相应的测试.后来测试经常变成琐碎的4线,但在写之前仍有脑袋后面的想法,"也许我可以跳过这一次,这一次?" 理想情况下,我想要一个写测试的冲动,只有这样,也许,代码:)
您使用什么方法(或思维或思维方式或自我奖励政策或其他方式)来帮助维持纪律?或者你只是练习它直到感觉自然?
ActionBar入门......
对于MenuItem.SHOW_AS_ACTION_IF_ROOM文档说:
如果系统确定有空间,则将此项目显示为操作栏中的按钮.
我的问题是,系统如何确定是否有空间,我可以影响/调整该决定吗?
在我的情况下,我有一些菜单项适合显示为动作按钮 - 如果有足够的空间.在较小的屏幕上,它们占用足够的空间来使动作栏的标题变得非常灵活.在这种情况下,我宁愿他们采取行动溢出,而不是模糊标题.
PS.我正在使用ActionBarSherlock并且没有检查本机ActionBar是否完全相同.如果原生ActionBar不允许"if-room"操作项过度缩小标题,那么很酷,我会去寻找ActionBarSherlock中的错误.
在我的动态壁纸中,我正在绘制3个纹理四边形,覆盖整个屏幕.在Nexus One上我得到40fps.我正在寻找提高性能的方法.
四边形相互混合,纹理从RGB_8888位图加载.纹理是1024x1024.
我有
glDisable(GL_DITHER);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
glDisable(GL10.GL_LIGHTING);
glDisable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Run Code Online (Sandbox Code Playgroud)
我尝试过的东西,都产生了相同的40fps:
如果我绘制2层而不是3层,fps上升到45左右,然后只绘制1层,看到fps上升到55.我想我受到填充率的限制,因为关闭和可能代价高昂的功能会导致相同的fps,似乎唯一能改善fps的东西就是减少...
我正在考虑纹理压缩的想法,但支持不同的压缩格式似乎并不好玩.ETC1没有我需要的alpha通道,我不确定PVRTC和ATITC是否可以从Java和OpenGL ES 1.0或1.1中使用.
我很高兴听到关于还有什么可以尝试的想法.我可以指示当前版本的壁纸和屏幕截图(如果有用).
我有一个python进程(Pylons webapp),它不断使用10-30%的CPU.我将改进/调整日志记录以获得对正在发生的事情的一些了解,但在那之前,是否有任何工具/技术可以让我们看到python进程正在做什么,有多少以及它有多忙线程等等?
更新:
另一个更新:
经过多次修改,在各个地方坚持使用探查器并熟悉PasteScript内部,我发现如果应用程序在没有"--reload"参数的情况下启动,则常量CPU负载会消失(如果代码发生变化,此标志会告诉paster重新启动,方便使用开发),生产环境很好.
android ×5
pylons ×2
api ×1
audiorecord ×1
debugging ×1
docker ×1
docker-swarm ×1
email ×1
methodology ×1
monitoring ×1
oauth ×1
office365 ×1
opengl-es ×1
openid ×1
performance ×1
python ×1
rest ×1
security ×1
spam ×1
storage ×1
tdd ×1
textures ×1
unit-testing ×1
unsubscribe ×1
widget ×1