小编Str*_*ing的帖子

如何阻止Eclipse尝试运行XML文件?

这些天我主要使用Eclipse进行Android开发,并为Ctrl-F11开发了良好的肌肉记忆来运行我的应用程序.问题是,如果我碰巧在编写一个XML文件(比如清单或布局)时碰到那个组合键,Eclipse会做一些我发现难以理解的东西......它试图"运行"我的XML文件,创建一个错误的输出文件(之类的layout.out.xml),然后我必须删除,在我的历史中添加一个无用的XML启动配置,并且通常是我的屁股的痛苦.

这没什么大不了的,但这是一个持续的烦恼.有谁知道如何禁用Eclipse中的"运行"XML?我试图为它找到一个配置项,但Eclipse的选项是这样一个兔子洞我自己没有运气.

谢谢!

xml eclipse android

53
推荐指数
1
解决办法
6918
查看次数

Android 3.1中可调整大小的appwidgets

我很高兴看到对可调整大小的appwidgets的支持随Android 3.1一起提供,但我对如何使它们实际工作感到困惑.

我不是appwidget新手,添加没有问题

android:resizeMode="horizontal|vertical"
Run Code Online (Sandbox Code Playgroud)

到我的appwidget定义XML.并且它可以工作,小部件名义上可以调整大小(长按它和句柄出现,让我将边框拖动到不同的大小).

但有两个问题:

首先,在调整窗口小部件时,似乎没有调用我的代码.在我的onReceive()处理程序中设置的断点永远不会被击中.

其次,假设我可以进入我的代码,我无法在文档中的任何位置看到获取窗口小部件的当前大小.我已经使用调用AppWidgetProviderInfo.minWidth和.minHeight,但那些只能反映在XML中给出的最小尺寸,它们不会在运行时更改.

那么,人们如何实际实现可调整大小的小部件呢?

xml user-interface android widget

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

如何在Android Wear通知上显示清晰的背景图像?

据我所知,有两种方法可以在Android Wear中为通知设置背景图像.为了记录,两者都以:

   Bitmap bitmap;
   Notification.Builder bob = new Notification.Builder(this)
            .setContentTitle(title)
Run Code Online (Sandbox Code Playgroud)

......等等来设置通知.还假设bitmap已经初始化为适当大小的图像(尽管这是另一个问题).

方法1:

   bob.setLargeIcon(bitmap);
Run Code Online (Sandbox Code Playgroud)

这有效,但AFAICT bitmap在通知的背景中总是模糊不清,无论其大小如何.

方法2:

   bob.setStyle(new Notification.BigPictureStyle().bigPicture(bitmap));
Run Code Online (Sandbox Code Playgroud)

这会清除位图,但是在可穿戴设备上插入额外的"页面"会产生令人遗憾的副作用,除了位图之外,该页面是空白的.我想这里的想法是你试图向用户展示图像 - 但我不是,我只是想要一个非模糊的背景.

有没有办法实现这个目标?

wear-os

7
推荐指数
1
解决办法
3096
查看次数

以编程方式确定Android Wear中的屏幕形状

我正在寻找一种在Java中确定Android Wear设备屏幕是圆形还是矩形的技术.请注意,这不仅仅是布局; 我的代码实际上需要知道它正在使用哪种形状,因为它们的处理方式不同.

从我在网上的代码示例中可以看出,应该有两种不同的方法 - 但是我无法让它们中的任何一种工作.我将它们包括在这里以消除它们的运行,或者可能的故障排除(如果有人可以看到它们的问题).请不要将我推荐给另一个SO帖子,这些帖子只是重申了我在这里不起作用的解决方案.

请注意,此处的所有代码都在手表上运行.另外,我还在使用Eclipse,FWIW.

我见过的最直接的方法onApplyWindowInsets()是在我的布局中为一个视图添加一个监听器.所以我创建了一个如下所示的监听器:

@Override
public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {
    if (insets.isRound()) {
     displayShape = "round";
    } else {
     displayShape = "rectangular";
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

并使用以下代码将其添加到我的布局的根视图中:

view.setOnApplyWindowInsetsListener(this);
Run Code Online (Sandbox Code Playgroud)

在我的onCreate()方法中.尽管看起来很好 - 但是听众永远不会被调用.我还发现建议说我需要手动调用它,如下:

view.requestApplyInsets();
Run Code Online (Sandbox Code Playgroud)

但这似乎没有任何区别.我已经尝试将它放在不同的视图,不同的生命周期方法等等,但从来没有看到它实际上在我的应用程序中被调用.这是在我的LG G手表BTW上运行的.

第二种方法是黑客攻击,基于已发布的WatchViewStub帮助程序类.我跳过了箍,将可穿戴支持库导入到Eclipse项目中,然后将以下内容添加到我的根布局中:

<android.support.wearable.view.WatchViewStub 
    android:id="@+id/watch_view_stub"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:rectLayout="@layout/rect"
    app:roundLayout="@layout/round"
    />
Run Code Online (Sandbox Code Playgroud)

并创建rect.xml如下:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/layout_type"
    android:text="rectangular"
    />
Run Code Online (Sandbox Code Playgroud)

和round.xml这样:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/layout_type"
    android:text="round"
    />
Run Code Online (Sandbox Code Playgroud)

最后,我在我onCreate()添加了以下Java代码:

    final WatchViewStub stub = (WatchViewStub) …
Run Code Online (Sandbox Code Playgroud)

wear-os

5
推荐指数
1
解决办法
3090
查看次数

标签 统计

android ×2

wear-os ×2

xml ×2

eclipse ×1

user-interface ×1

widget ×1