小编Bre*_*siu的帖子

如何以编程方式将LinearLayout添加背景颜色,并将权重添加到另一个布局

我在xml中有LinearLayout:

    <LinearLayout
        android:id="@+id/progress"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/progress_height"
        android:layout_alignParentBottom="true"
        android:baselineAligned="false"
        android:orientation="horizontal" />
Run Code Online (Sandbox Code Playgroud)

我想生成动态几个另一LinearLayouts并把他们的"进步" equaly间隔,例如:

  • 添加的第一个LinearLayout将占用所有空间.
  • 第二个LL将与1LL共享50%的空间
  • 第三LL将分享33%的空间,1LL和2LL
  • 等等...

每个LinearLayout都会有随机的背景颜色,我写的是这样的:

mProgress = (LinearLayout) findViewById(R.id.progress);
.
.
.
LinearLayout prog = new LinearLayout(this);
            prog.setBackgroundColor(CommonUtils.getNextRandomColor());
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);

            prog.setLayoutParams(params);
            mProgress.addView(prog);
Run Code Online (Sandbox Code Playgroud)

当用户按下按钮时,将生成另一个LL,颜色不同.

我的方法不起作用.布局中没有背景颜色.

也许有另一种更简单的方法来实现某种进度条,颜色共享一些空间?

android android-layout android-linearlayout layoutparams

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

Android Studio gradle和库导入

我已成功将ActionBarSherlock导入到我的项目中,并需要导入另外两个库:Sliding LayerCrouton.我知道之前已经出现过类似的问题了,但是我几乎尝试了所有的东西,每次都以一种我必须重新开始的方式破坏项目中的某些东西.

我的项目树看起来像:

MyProject/
+ app/
+ libraries/
   + actionbarsherlock/
   + crouton/
   + slidinglayer/
Run Code Online (Sandbox Code Playgroud)

我将这两个库导入为模块(文件 - >导入模块)

我的setting.gradle文件看起来应该是:

include ":libraries:actionbarsherlock", ':Krypto', ':libraries:crouton', ':libraries:slidinglayer'
Run Code Online (Sandbox Code Playgroud)

actionbarsherlock gradle:

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android-library'

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            res.srcDirs = …
Run Code Online (Sandbox Code Playgroud)

android gradle actionbarsherlock crouton android-studio

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

将 android manifest merge 作为独立应用程序运行

我有Ant很多模块的项目。我正在尝试将一些模块合并成更大的模块并减少它们的数量。

我可以android manifest merger作为独立应用程序运行并合并指定为参数的清单吗?

例如我有模块: A , B , C , D , E

我需要[A] , [B]成为[AB]模块,而[C] , [D] , [E]成为[CDE]

我需要这个,因为我正在编写Python脚本,这将有助于迁移到Gradle. 脚本将扫描目录,并使用所有文件、复制的类和资源创建新项目。我希望它是通用的。

ant android build gradle android-manifest

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

SVG 渐变作为具有绝对位置的折线描边背景

是否能够设置应用于折线的渐变背景的绝对位置?

例如当我设置渐变时:

<filter id="black-glow">
    <feColorMatrix type="matrix" values=
       "0 0 0 0   0        
        0 0 0 0   0
        0 0 0 0   0
        0 0 0 1   0" />
    <feGaussianBlur stdDeviation="3" result="coloredBlur" />
    <feMerge>
      <feMergeNode in="coloredBlur" />
      <feMergeNode in="SourceGraphic" />
    </feMerge>
</filter>
Run Code Online (Sandbox Code Playgroud)

折线的笔画:

<polyline points="50,350 ... 350,239" style="fill:none;" stroke="url(#grad1)" stroke-width="3" stroke-linecap="round" />
Run Code Online (Sandbox Code Playgroud)

(折线有最大/最小位置点)

结果没问题:

在此输入图像描述

但是,当折线平坦时:

在此输入图像描述

绿色的颜色要高得多。由于这是彩色图表,因此我需要实现不断查看背景,而与绘制折线的方式无关。

svg linear-gradients polyline

2
推荐指数
1
解决办法
2156
查看次数

RxTextView文本更改+ retrofit调用导致InterruptedIOException

许多带有RxTextView.textChanges示例的RxJava教程,并debounce使用"实时搜索".例如:使用RxJava改进UX.所以我已经实现了这个例子,我试着玩:

RxTextView.textChanges(searchView)
          .observeOn(Schedulers.io())
          .skip(1)
          .debounce(DELAY_BEFORE_REQUEST_MS, TimeUnit.MILLISECONDS)
          .map(new Func1<CharSequence, String>() {
                @Override public String call(CharSequence charSequence) {
                    return charSequence.toString();
                }
            })
          .switchMap(new Func1<String, Observable<Response>>() {
                @Override public Observable<Response> call(String query) {
                    return retrofitService.search(query);
                }
            })
          .subscribe();
Run Code Online (Sandbox Code Playgroud)

一切都很好看,直到我决定在Android模拟器上模拟GPRS网络类型.

第一个api调用被触发,当我向' searchView ' 添加下一个字母时,app崩溃了InterruptedIOException:

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.
      at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:60)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:269)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
      at java.lang.Thread.run(Thread.java:818)
   Caused by: rx.exceptions.OnErrorNotImplementedException: thread interrupted …
Run Code Online (Sandbox Code Playgroud)

android rx-java retrofit2

2
推荐指数
1
解决办法
1878
查看次数