让我来描述我的情况:
Blond先生和Orange先生正在研究分支A,它在提交M1的主分支上分支出来.分支A有2个提交:A1和A2.
M1
\
\
A1 - A2
Run Code Online (Sandbox Code Playgroud)
与此同时,奥兰治先生承诺并在主分公司M2和M3上多推了两笔.
M1 - M2 - M3
\
\
A1 - A2
Run Code Online (Sandbox Code Playgroud)
布朗先生从遥控器拉出来,过了一会儿决定重新进入主分支:
M1 - M2 - M3
\ \
\ \
A1 - A2 A1` - A2`
Run Code Online (Sandbox Code Playgroud)
现在A1`和A2`是在先生金发的本地存在的衍合的提交,以及A1和A2远程存在.金发先生推动他的提交,使用-f强制他的改变并"重写"历史.现在远程存储库看起来像这样:
M1 - M2 - M3
\
\
A1` - A2`
Run Code Online (Sandbox Code Playgroud)
但奥兰治先生也在A分公司工作.他的本地存储库仍然如下所示:
M1 - M2 - M3
\
\
A1 - A2
Run Code Online (Sandbox Code Playgroud)
Orange先生需要做什么才能与远程存储库中的A分支同步?
正常拉动不起作用.请拉-f强制远程本地的更改?我知道删除本地版本的A并从远程存储库再次提供它将会起到作用,但这似乎并不是实现这一目标的好方法.
我UIScrollView添加了一个单击手势识别器来显示/隐藏一些UI叠加使用:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[scrollView addGestureRecognizer:singleTap];
Run Code Online (Sandbox Code Playgroud)
和:
- (void)handleTap:(UITapGestureRecognizer *)sender {
// report click to UI changer
}
Run Code Online (Sandbox Code Playgroud)
我在底部添加了一个简单的表格视图UIScrollView.一切正常(水平和垂直滚动)但问题是点击仅由手势识别器(上图)识别,而不是由简单的表格视图识别.如果我删除注册手势监听器的行,一切正常,表视图会通知自己.
这就好像手势识别器功能"吃掉"表视图上的点击事件并且不向下传播它们.
任何帮助表示赞赏
RelativeLayout当你将视图与布局的一侧(任何一侧)对齐并且在同一方向上有一个大的边距时,我注意到了一种奇怪的行为.
我有2个RelativeLayouts,每个都包含一个简单的视图.在一个布局中,视图与顶部和左侧对齐,在另一个布局中与底部和右侧对齐:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginTop="110dp"
android:layout_gravity="center"
android:background="#ff555555" >
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:background="#aa8711" />
</RelativeLayout>
<RelativeLayout
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginBottom="110dp"
android:layout_gravity="center"
android:background="#ff555555" >
<View
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="#998877" />
</RelativeLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:

我在父对齐的每个方向上添加了130dp的边距.这意味着视图应该只在布局中部分可见.这是发生的事情:

正如您所看到的,视图现在小于原始大小,因为它被推到了布局的"墙"上.接下来我试图给出一个比布局更大的边距,所以我在对齐的方向上给了它们151dp的边距.它看起来像这样:

右下方对齐的视图现在"突破"布局,并且再次与原来的大小相同.另一方面,左上角对齐的视图也是原始大小,但完全在布局内部而不是在其外部.
我已经单独尝试了这个并且在每个排列的对齐中得到了相同的结果.
问题一:任何人都可以解释这种不一致的行为吗?
我尝试了同样的事情,这次将行为与a的行为进行比较FrameLayout.初始设置:

并且在保证金之后:

将FrameLayout保持在所有时间的原始大小视图和简单地让视图"退出"了.我尝试在至少应该在视图之外的视图的大小的相反方向给出负边距,RelativeLayout并且看到与FrameLayout默认情况下发生的行为相同的行为.
问题2:任何人都可以解释行为上的差异和相反的负边际效应吗?
android android-layout android-relativelayout android-framelayout
我正在尝试使用Android中的Volley库设置我的请求的优先级.我无法找到如何设置请求优先级.
StringRequest request = new StringRequest(Request.Method.GET,"feed URL",volleyListener, volleyErrorListener);
pe.requestQueue.add(request);
Run Code Online (Sandbox Code Playgroud)
有关如何做到这一点的任何想法?
我想从用户的联系人中显示一个圆形化身作为通知的大图标 - 就像收到文本或邮件时一样.当我将大图标设置为该联系人的图像时,会生成一个方形图标.
我正在寻找看起来像顶部图标(方形头像)的东西,看起来像电子邮件通知上的大图标(圆形头像):

我该怎么做?
我有一个ImageReader用于获取预览帧的数据(字节数组).它配置了推荐的图像格式,YUV_420_888如下所示:
mPreviewImageReader = ImageReader.newInstance(width,
height, ImageFormat.YUV_420_888, 2);
Run Code Online (Sandbox Code Playgroud)
当我mPreviewImageReader.setOnImageAvailableListener();调用的监听器被调用时,我检索一个图像:
Image image = reader.acquireLatestImage();
Run Code Online (Sandbox Code Playgroud)
在某些手机中,我在日志中看到以下带有ImageReader_JNI标签的打印输出:
ImageReader_imageSetup:覆盖缓冲区格式YUV_420_888到32315659.
我搜索了,似乎格式被覆盖了YV12.我试着查看ImageReader的c ++代码并发现了这种情况:
int bufFmt = buffer->format;
if (imgReaderFmt == HAL_PIXEL_FORMAT_YCbCr_420_888) {
bufFmt = buffer->flexFormat;
}
if (imgReaderFmt != bufFmt) {
if (imgReaderFmt == HAL_PIXEL_FORMAT_YCbCr_420_888 && (bufFmt ==
HAL_PIXEL_FORMAT_YCrCb_420_SP || bufFmt == HAL_PIXEL_FORMAT_YV12)) {
// Special casing for when producer switches to a format compatible with flexible YUV
// (HAL_PIXEL_FORMAT_YCbCr_420_888).
ctx->setBufferFormat(bufFmt);
ALOGD("%s: Overriding buffer format YUV_420_888 to …Run Code Online (Sandbox Code Playgroud) 他们告诉我们应该使用ASyncTaskLoaders,因为他们非常善于阻止UI线程.现在有Volley使用.
我想我们不能同时使用它们,因为Volley自己做了背景.你怎么看?哪一个更好?
我在 OS X 10.9 上运行 Android Studio 0.3.7 版。当我打开一个 JavaScript 文件时,我收到一个提示说:Plugin supporting files with *.js are found有 2 个选项:install plugins和ignore plugins. 当我单击安装选项时,会Choose plugins to install or Enable弹出一个新窗口,但它是空的,并且只写了“无显示”。有没有人经历过这个?有没有办法手动搜索和安装这些 JavaScript 插件?
我正在测试一个我需要一定时间才能通过的课程才能检查结果.具体来说,我需要x分钟才能通过才能判断测试是否有效.我已经读过在单元测试中我们应该测试接口而不是实现,所以我们不应该访问私有变量,但除了在我的单元测试中进行休眠之外,我不知道如何在不修改私有变量的情况下进行测试.
我的测试设置如下:
@Test
public void testClearSession() {
final int timeout = 1;
final String sessionId = "test";
sessionMgr.setTimeout(timeout);
try {
sessionMgr.createSession(sessionId);
} catch (Exception e) {
e.printStackTrace();
}
DBSession session = sessionMgr.getSession(sessionId);
sessionMgr.clearSessions();
assertNotNull(sessionMgr.getSession(sessionId));
Calendar accessTime = Calendar.getInstance();
accessTime.add(Calendar.MINUTE, - timeout - 1);
session.setAccessTime(accessTime.getTime()); // MODIFY PRIVATE VARIABLE VIA PROTECTED SETTER
sessionMgr.clearSessions();
assertNull(sessionMgr.getSession(sessionId));
}
Run Code Online (Sandbox Code Playgroud)
除了修改accessTime私有变量(通过创建setAccessTime setter或反射)或在单元测试中插入sleep之外,是否可以测试这个?
编辑2012年4月11日
我特意试图测试我的SessionManager对象在经过一段特定时间后清除会话.我连接的数据库将在一段固定的时间后丢弃连接.当我接近该超时时,SessionManager对象将通过调用数据库上的"finalize session"过程来清除会话,并从其内部列表中删除会话.
SessionManager对象旨在在单独的线程中运行.我正在测试的代码如下所示:
public synchronized void clearSessions() {
log.debug("clearSessions()");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, - timeout);
Iterator<Entry<String, DBSession>> entries = sessionList.entrySet().iterator();
while (entries.hasNext()) …Run Code Online (Sandbox Code Playgroud) 我有一个问题AnimationDrawable,我以编程方式创建,一旦我将其分配给一个ImageViewvia imageView.setBackgroundDrawable(我支持API 8)就开始.
这是我的代码的缩写:
mSequence = new AnimationDrawable();
ImageView imageView = new ImageView(context);
ImageView.setAdjustViewBounds(false);
Run Code Online (Sandbox Code Playgroud)
我的所有资产都保存在本地,因此我将它们添加到 AnimationDrawable
for(String assetId : mAssets) {
bitmap = loadBitmap(assetId); // returns a bitmap saved earlier
if (bitmap != null) {
mSequence.addFrame(new BitmapDrawable(res, bitmap), mFrameDuration);
}
}
Run Code Online (Sandbox Code Playgroud)
最后我将其分配AnimationDrawable给视图
if (mSequence.getNumberOfFrames() > 0) {
imageView.setBackgroundDrawable(mSequence);
}
Run Code Online (Sandbox Code Playgroud)
现在,在我有机会调用该start()函数之前,动画会在ImageView加载后立即启动.
我希望能够根据我自己的逻辑控制动画的开始时间.
这发生在任何人身上吗?
**
**
感谢Tom,我知道触发动画的原因是ImageView在分配后动态发生的可见性变化AnimationDrawable.在我的情况下解决方案并非微不足道,因为我有一个复杂的情况,但对于其他人,它可能更简单.
我根据类描述回到将drawable设置为背景,我引用:
创建逐帧动画的最简单方法是在XML文件中定义动画,放置在res/drawable /文件夹中,并将其设置为View对象的背景.然后,调用start()来运行动画.
android ×6
java ×2
animation ×1
avatar ×1
git ×1
imageview ×1
ios ×1
junit ×1
objective-c ×1
plugins ×1
pull ×1
push ×1
rebase ×1
tdd ×1
uiscrollview ×1
unit-testing ×1
visibility ×1