相关疑难解决方法(0)

如何添加自定义按钮状态

例如,默认按钮在其状态和背景图像之间具有以下依赖关系:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_window_focused="false" android:state_enabled="false"
        android:drawable="@drawable/btn_default_normal_disable" />
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_default_pressed" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_normal" />
    <item android:state_focused="true"
        android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item
        android:drawable="@drawable/btn_default_normal_disable" />
</selector>
Run Code Online (Sandbox Code Playgroud)

如何定义自己的自定义状态(类似于smth android:state_custom),那么我可以使用它来动态更改我的按钮视觉外观?

android state button

124
推荐指数
3
解决办法
6万
查看次数

基于一个代码库/项目创建演示和完整版应用程序

我在Eclipse的一个项目中开发了一个Android应用程序 - 它是结构化的(来自iPhone),所以一个常量定义它是演示版还是完整版.

现在我遇到的问题是,每次我想创建演示版本时我都需要更改常量,但还需要使用不同的包名创建项目的副本.

显然,原始完整版中的代码更改需要复制到演示中,否则我每次提交应用程序时都必须重做演示应用程序的创建.

我看到三种可能的方法:

1.虽然我已经研究过图书馆项目,但我仍然不清楚在这种情况下这是如何真正提供一个好的解决方案的.

例如,如果我有一个活动结构的完整版本:

A1
A2
A3
Run Code Online (Sandbox Code Playgroud)

使用实用程序类U1,U2

当然U1和U2可以在一个库项目中并从两个项目中引用 - 但是活动,strings.xml,图形,布局需要重复(或者是否有另一种我看不到的方式?)这似乎没有是一个很好的前进方式,遗憾的是,当提出这种方法时,在这个主题的类似问题中没有解释过.

2.另一种方法是根据不同的构建设置(类似于iPhone)创建不同的包名称,但是,这似乎不可能在Eclipse中使用而不是使用一些外部脚本(诚实地说 - 我宁愿避免使用它似乎相当容易出错)同时还必须在Eclipse之外调用编译

3.可能最直接的方法(目前还有很少的努力)只是手动复制项目,更改一个常量,重命名包并在每次提交时编译/导出.然而 - 这似乎是相当"基本"的,当然看起来并不专业(与iPhone/xCode构建设置/目标解决方案相比)

什么是最好的方法(需要最少量的变化,仍然稳定且易于使用)?

非常感谢!

编辑

对于尝试过tim解决方案的每个人来说 - 它运行正常,但我遇到了自定义属性的问题.

检查一下:如何在构建期间解决Android库自定义属性和包名重新映射? 它将解决图书馆的问题

android build conditional-compilation android-library

4
推荐指数
1
解决办法
3127
查看次数