小编Seb*_*wak的帖子

Android裁剪背景

我的LinearLayout宽度设置为fill_parent和高度为wrap_content.现在我想从png文件中给它一个背景,但是以传统方式执行它会导致LinearLayout调整大小以显示整个背景而不是裁剪其他部分.

如何设置背景,LinearLayout以便不调整大小?

谢谢

android background crop drawable

28
推荐指数
2
解决办法
3万
查看次数

Android静音/取消静音手机

我的目标是支持2个操作:

  • 静音电话(可能启用/禁用振动),因此当接到电话或短信时,它不会发出噪音

  • 取消静音电话并将音量恢复到静音手机之前的状态

我怎样才能做到这一点?AndroidManifest需要什么权限?

android volume mute android-permissions

21
推荐指数
2
解决办法
2万
查看次数

Android动画GIF支持

如何检查当前设备是否支持动画GIF文件?检查操作系统版本不可靠,因为某些Android 2.1手机已启用支持,而且有2.3的手机不支持GIF文件.

android gif animated

12
推荐指数
1
解决办法
3493
查看次数

Android后退按钮行为

假设我们有一个带默认行为的默认空活动,使用默认意图标志启动.用户按下设备上的后退按钮.活动消失......但实际上怎么样?

  • 按下按钮的行为方式是否相同finish()
  • 活动是否被立即销毁(onDestroy被称为)?
  • 是否保证活动被销毁,但不能立即销毁?
  • 是否有可能不会销毁活动,并且在将来启动此活动时将重复使用此实例?(所以只有onPauseonStop- > onStartonResume被称为?)

我正在寻找一个可靠的答案,所以如果你不完全确定这里发生了什么,请不要回答.

android onresume ondestroy onpause android-activity

11
推荐指数
1
解决办法
9637
查看次数

子文档上的Mongoose唯一索引

假设我有一个简单的架构:

var testSchema = new mongoose.Schema({
    map: { type: [ mongoose.Schema.Types.Mixed ], default: [] },
    ...possibly something else
});
Run Code Online (Sandbox Code Playgroud)

现在让我们确保对(_id,map._id)是唯一的.

testSchema.index({ _id: 1, 'map._id': 1 }, { unique: true });
Run Code Online (Sandbox Code Playgroud)

快速检查使用db.test.getIndexes()显示它已创建.

{
    "v" : 1,
    "unique" : true,
    "key" : {
        "_id" : 1,
        "map._id" : 1
    },
    "name" : "_id_1_map._id_1",
    "ns" : "test.test",
    "background" : true,
    "safe" : null
}
Run Code Online (Sandbox Code Playgroud)

问题是,这个索引被忽略了,我可以轻松地创建多个具有相同的子文档map._id.我可以轻松地多次执行以下查询:

db.maps.update({ _id: ObjectId("some valid id") }, { $push: { map: …
Run Code Online (Sandbox Code Playgroud)

indexing mongoose mongodb

10
推荐指数
2
解决办法
8645
查看次数

Android ListView主题

有很多方法可以为ListViews设置样式以使它们看起来优雅,但所有这些方法都涉及修改适配器或编写其他代码.

随着Android 4.0的发布,不幸的事情必须改变.谷歌打磨了他们的Holo主题并赋予它新的外观.现在鼓励所有开发人员使用它,以使所有应用程序看起来都一样.

这就是问题所在.谷歌推出4.0,但仍有人使用较旧的Android版本.我们不能只保留以前的自定义应用程序主题并使用Holo,因为它会破坏使用旧设备的用户的视觉体验.我们不能强迫4.0用户只使用Holo,因为我们说实话 - 它仍然不完美.

目标是使用内置主题系统并为Holo准备一些替代品,这在所有设备上看起来都很棒.然后我们可以只使用setTheme()在Holo和我们的主题之间切换,而不会出现其他问题.不幸的是,事情并非那么简单.我们仅限于现有主题系统的功能,有些事情很难做到.这是我的问题.

考虑到我提到的一切,我们如何控制ListView外观?我无法弄明白,如何:

  • 创建带圆角的列表,并确保选择第一个/最后一个元素时选择器背景不会破坏它
  • 创建圆角不是为列表而是由标题分隔的部分,如下所示: 在此输入图像描述

该解决方案应该影响PreferenceActivity创建的ListView,而无需任何额外的代码行.一切都应该包含在主题中:

<theme name="SampleTheme" parent="android:Theme">
  ...
</theme>
Run Code Online (Sandbox Code Playgroud)

我恳请不要发布不使用样式和主题的解决方案.它们可以在另一个问题中轻松找到,这里是Stack Overflow.

提前致谢.

android listview themes styles rounded-corners

9
推荐指数
1
解决办法
2647
查看次数

没有意图过滤器的Android BroadcastReceiver

我在几个Android广告网络中看到他们声明BroadcastReceiver没有意图过滤器.像这样的东西:

<receiver android:name="com.example.SampleReceiver" />
Run Code Online (Sandbox Code Playgroud)

我的猜测是这样的接收器会捕获所有可能的事件.所以我自己尝试过这样做并创建了一个SampleReceiver:

public class SampleReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        System.out.println("Event captured: " + intent.getAction());
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经启动了应用程序,尝试通过在手机上执行各种操作来触发某些事件,并注意到onReceive()甚至没有调用过一次.

所以问题是 - 没有intent过滤器的BroadcastReceiver如何工作?也许它需要通过代码创建intent过滤器?如果是这样,怎么样?如果没有,那为什么不接收任何事件?这里发生了什么?

android intentfilter broadcastreceiver android-intent

9
推荐指数
2
解决办法
4365
查看次数

由地图图块切断的符号

当我向折线添加箭头时,当箭头位于地图图块的边缘时,它会被切断.这可以使用文档中的示例代码(https://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-arrow)进行复制,只需将其拖动并移动一点即可.

以下是不在边缘时的外观:

.

这是它在边缘看起来的样子:

.

版本(3.16)和实验(3.17)版本都存在问题.我已经在google的bugtracker上报道了它,但它们可能需要数年才能修复它.那么,有没有人知道解决方法?

编辑:哦,我应该补充说,它不会发生在小笔画时,它必须像图像上那样大一些.

javascript google-maps google-maps-api-3

9
推荐指数
1
解决办法
375
查看次数

Android ScrollView褪色边缘

默认情况下,只有可以在该方向上滚动时,scrollview的渐变边缘才可见.我怎样才能让它随时可见?

我不想把任何抽签放在上面或类似的东西.我想使用内置的淡化边缘来完成它,可能是通过覆盖一些scrollview函数.

提前致谢

android scrollview fading

8
推荐指数
1
解决办法
1万
查看次数

带有onClick和onLongClick的Android onTouch

我有一个自定义视图,就像一个按钮.我想在用户按下它时更改背景,当用户将手指移到外面或释放它时将背景恢复为原始状态,我还想处理onClick/onLongClick事件.问题是onTouch要求我返回true,ACTION_DOWN否则它不会向我发送ACTION_UP事件.但如果我回归真实,那么onClick听众将无法工作.

我以为我通过在onTouch中返回false并注册onClick来解决它 - 它以某种方式工作,但是有点反对文档.我刚收到用户的消息,告诉我他无法长按此按钮,所以我想知道这里有什么问题.

当前代码的一部分:

public boolean onTouch(View v, MotionEvent evt)
{
  switch (evt.getAction())
  {
    case MotionEvent.ACTION_DOWN:
    {
      setSelection(true); // it just change the background
      break;
    }

    case MotionEvent.ACTION_CANCEL:
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_OUTSIDE:
    {
      setSelection(false); // it just change the background
      break;
    }
  }

  return false;
}

public void onClick(View v)
{
  // some other code here
}

public boolean onLongClick(View view)
  {
    // just showing a Toast here
    return false;
  }


// somewhere …
Run Code Online (Sandbox Code Playgroud)

android click touch

8
推荐指数
1
解决办法
1万
查看次数