代码之家  ›  专栏  ›  技术社区  ›  Scoobler

Android小工具文本背景

  •  0
  • Scoobler  · 技术社区  · 16 年前

    我有一个带有小部件的应用程序,但是我在小部件的布局上遇到了一些困难。

    如果这个小部件看起来像一个图标,并且在它下面有一个小的文本标签,就像桌面上的其他图标一样,这是一个基本的想法。

    我发现了一个使用android:background作为textview的示例,并使用了一个可绘制的XML:

    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#AA111111"/>
    <padding android:left="5dp" 
      android:right="5dp"
      android:bottom="1dp" 
      android:top="1dp" />
    <corners android:radius="8dp" />
    </shape>
    

    然而,这并不能很好地工作,文本只是不同于桌面上的其他图标,当你旋转手机时,文本的一部分会被切断!

    下一个问题是选择小部件,我使用一个imagebutton作为图标-将android:background设置为透明图像。我一直在使用另一个可绘制的XML文件,它允许我在选择小部件时更改图像。不过,我更喜欢图标的默认操作,即图标周围的正方形变成橙色。

    我将如何实现这两个效果-我知道这是可能的,因为应用程序“短信未读计数”完全实现了我想要发生的事情!

    1 回复  |  直到 14 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    我会做如下的事情:

    <LinearLayout>
        <ImageView/>
        <TextView/>
    </LinearLayout>
    

    LinearLayout的背景是 <selector> 阿卡 StateListDrawable . 选择器将指定一个透明的背景,选中后该背景将变为橙色。

    线性布局也将是您设置的视图 PendingIntent 这样,用户就可以单击视图中的任何位置,并将其注册为on click事件。

    至于你的布局问题,你只需要玩弄布局就可以让图像和文本看起来像主屏幕上的其他图标。我认为,要获得一个水平居中的图像视图(其下方有水平居中的文本视图),然后调整图像尺寸和文本大小,直到它们看起来像主屏幕上的其他图标,这并不难。

    对于在主屏幕上切换到横向视图时看到的问题,需要提供一个经过调整以在横向模式下正确显示的布局XML文件的横向版本。看看我的答案 this question 因为这样做的方法。当我制作应用程序小部件时,我通常会使纵向视图看起来完美,然后将该布局文件复制到layout-land目录中,并开始进行调整,直到它看起来像我希望它也出现在landscape中。