标签: android

更改NumberPicker分隔线颜色

在最近的Android版本中,数字选择器在绘制时使用蓝色分隔符(参见下图).

在此输入图像描述

我想改变这种颜色.有工作的解决方案吗?或者是一个包含更新版本的NumberPicker的库,它允许自定义分隔符颜色?

我尝试过android-numberpicker,但是由于库中的一些代码试图访问不存在的资源ID,我在运行时遇到错误(见下文).

android.content.res.Resources$NotFoundException: Resource ID #0x0
        at android.content.res.Resources.getValue(Resources.java:1123)
        at android.content.res.Resources.loadXmlResourceParser(Resources.java:2309)
        at android.content.res.Resources.getLayout(Resources.java:939)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
        at net.simonvt.numberpicker.NumberPicker.<init>(NumberPicker.java:635)
        at net.simonvt.numberpicker.NumberPicker.<init>(NumberPicker.java:560)
        at net.simonvt.numberpicker.NumberPicker.<init>(NumberPicker.java:550)
Run Code Online (Sandbox Code Playgroud)

android numberpicker android-styles

35
推荐指数
4
解决办法
3万
查看次数

如何在Android中使用okhttp库向api(http post)添加参数

在我的Android应用程序中,我使用的是okHttp库.如何使用okhttp库将参数发送到服务器(api)?目前我使用以下代码访问服务器现在需要使用okhttp库.

这是我的代码:

httpPost = new HttpPost("http://xxx.xxx.xxx.xx/user/login.json");
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("email".trim(), emailID));
nameValuePairs.add(new BasicNameValuePair("password".trim(), passWord));
httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
String response = new DefaultHttpClient().execute(httpPost, new BasicResponseHandler());
Run Code Online (Sandbox Code Playgroud)

android okhttp

35
推荐指数
4
解决办法
4万
查看次数

如何将现有的Android Studio项目连接到现有的Github存储库

所以我是Android开发和Android Studio的新手.

我使用Android Studio创建了一个Android项目,每次我想将代码提交给GitHub时,我都会切换到命令行并从那里提交/推送代码.

但是,我现在意识到Android Studio有自己的功能来连接到GitHub.我想使用这些功能.

由于项目已经存在,我不想只是从Android Studio创建一个新的GitHub存储库并删除旧的存储库.我只想将现有的GitHub存储库与Android Studio项目连接起来.

我怎样才能同步这些?

git android github android-studio

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

早期版本的Android 5.0 JobScheduler API?

我正在构建一个Android应用程序,该应用程序利用清单广播接收器来了解设备何时插入.我认为Android 5.0 JobScheduler API是一种更好的方法,但我有一个问题:是否可能在早期版本的Android上使用此API或类似的API?如果不可能,最好的选择是什么(而不是清单广播接收器)?

android android-5.0-lollipop

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

材料设计:导航抽屉宽度

根据Material Design规范,Nav Drawer在移动设备上的宽度必须是

side nav width =屏幕宽度 - app bar height

我们如何在android上实现这个?

我有两个部分解决方案.首先是hacky方式:在包含活动中我把这段代码:

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB_MR1) {
    final Display display = getWindowManager().getDefaultDisplay();
    final Point size = new Point();
    display.getSize(size);

    final ViewGroup.LayoutParams params = mDrawerFragment.getView().getLayoutParams();
    params.width = size.x - getResources().getDimensionPixelSize(
        R.dimen.abc_action_bar_default_height_material
    );
    mFragmentUserList.getView().setLayoutParams(params);
}

然而,这导致第二个布局周期并且在姜饼中不起作用:它不是最佳的.

第二种解决方案是在片段和drawerLayout之间添加一个Space.然而,它取代了阴影和用户可以按下以返回主应用程序的位置.当按下"hamburguer"图标时,它也会崩溃.也不是最佳的.

有没有更好的解决方案,最好是涉及样式和xml?

android android-appcompat material-design

35
推荐指数
3
解决办法
4万
查看次数

视频播放器使用appcompat-v7在Android中点亮模式

我正在将一个代码库从本机Holo(Theme.Holo等)移植到appcompat-v7(Theme.AppCompat等等).如果您不想阅读详细信息,最后一部分包含tl; dr.


问题

一切正常,但我有问题复制一个很容易使用旧ActionBar的行为.我有一个视频播放器,在风景中我希望它的行为像YouTube:隐藏(动画)播放器控件,应用栏和状态栏.在用户交互时,UI控件应该保持"熄灯"模式并返回正常状态.如果用户没有触摸屏幕X秒,则计时器将返回到熄灯模式.使用ActionBar的相同代码不能用Toolbar.

所以,我使用的是:

  • 不透明的状态栏
  • setSystemUiVisibility() 使用以下组合之一:
    • 默认: View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    • 熄灯: View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  • minSdkVersion 是16岁
  • 显示和隐藏的动作条我简称show()hide()
  • 在app子栏上实现相同的行为我子类化Toolbar并添加了一个show()和一个hide()方法来做同样的事情(首先简单地使用setVisibility(),然后使用动画 - 得到相同的结果)

LAYOUT_STABLE做这样的appbar最终会在状态栏的背后,当然是(因为这意味着fitSystemWindows,由于appbar是视图层次结构中的普通视图和喜欢的动作条中,它是由该标志的影响是不是在装修这就是我在屏幕上看到的:

状态栏后面的App栏

不能立即清楚工具栏界限是什么,因为应用栏在黑暗中是黑暗的,但是你可以看到标题被剪切并且"未对齐".这是因为工具栏的大小正确但位于状态栏后面.我的主要问题是,此时没有公共API来获取状态栏高度,矩形或其他任何内容以垂直移动我的应用栏以显示状态栏下方.

测试主要是在LPX13D上的N5上进行的(在撰写本文时最新的Lollipop公共版本),但在Android 4.4上也可以看到相同的情况.


黑客的解决方案

也就是说,经过相当长的一段时间和一些失败的尝试使其以一种不太苛刻的方式工作(包括我自己试图将其置于装饰中的相当绝望的尝试),我采取了这种令人讨厌的方式使其工作:

  1. onResume:
    a.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE)即使我通常不这样做也会打电话(风景)
    b.注册一个OnPreDrawListener

  2. OnPreDrawListener:
    a.使用View root = getRootView().findViewById(R.id.my_root)
    b 获取根视图.获取根视图高度:( int rootTop = getAbsoluteViewTop(root) …

android media-player android-appcompat android-support-library android-toolbar

35
推荐指数
1
解决办法
913
查看次数

在Kotlin for Android中编程时使用RxAndroid或RxKotlin?

我将开始在我的Android项目中使用反应式编程.我使用Kotlin作为主要语言,现在我想申请Rx.我的第一选择是RxAndroid,但后来我注意到有RxKotlin.

据我所知,两者都是从RxJava分叉的,所以RxAndroid可能为android常见任务提供了一些API.另一方面,RxKotlin支持lambas开箱即用,让我避免将kotlin与java混合.

在这种情况下哪一个是首选的库?

android rx-android rx-kotlin

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

如何在Android中创建可滚动的旋转页面?

我正在尝试为我的Android应用程序构建一个UI,其中包含一个可垂直滚动的可水平滚动轮播页面(类似于Netflix应用程序的功能).这种行为是如何完成的?

一个基本的实现就足以让我开始.UI还有一些其他要求,我将在此处作为参考,因为它可能会影响我可以使用的类或库.

1)旋转木马之间的垂直滚动应该是平滑的,但是当用户释放时,UI应该"捕捉"最近的旋转木马(因此用户总是在旋转木马行上,而不是在两个旋转木马之间).

2)旋转木马上的水平滚动应该是平滑的,但是当用户释放时,UI应该"捕捉"旋转木马中最近的项目.

3)应该可以在转盘中的项目上叠加附加信息

4)UI应适应任何屏幕尺寸.

5)应使用箭头键导航(适用于无触摸屏的设备)

6)应该适用于各种Android版本(可能通过支持库)

7)应该可以在根据GPL许可的开源应用程序中使用

可接受的答案不必满足所有这些要求.至少,一个好的答案应该涉及导航多个轮播(而不是只有一个轮播).

这是一个基本上我想象的模型(我很灵活,不必看起来像这样......只是为了澄清我在谈论的内容 - 每一行都包含很多可能的项目向左和向右滚动,整个页面可以上下滚动)

在此输入图像描述

android carousel android-layout

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

Gradle无法在Android Studio中解析库

我想在Android Studio中包含一个库,但它显示如下错误:

"无法解决:com.lemonlab:expandable-button-menu:1.0.0"

如何解决这个问题?

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 21
        buildToolsVersion '21.1.2'

        defaultConfig {
            applicationId "ayowes.com.newecampus"
            minSdkVersion 15
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-ptimize.txt'), 'proguard-rules.txt'
            }
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile 'com.google.android.gms:play-services:6.5.87'
        compile 'com.lemonlab:expandable-button-menu:1.0.0'
        compile files('libs/pinchzoom.jar')
    }
Run Code Online (Sandbox Code Playgroud)

android gradle libraries

35
推荐指数
7
解决办法
10万
查看次数

Android Studio Git .gitignore vs Project>设置>版本控制>忽略的文件

我有些困惑,我注意到在Android Studio中设置我的第一个Git存储库后,所有要忽略的正确文件都会自动添加到"设置">"版本控制">"忽略的文件"下的"项目"设置中.

这看起来很神奇,我从来没有说过要忽略什么.而且,我习惯于创建项目的任何目录中都没有.gitignore文件.

话虽如此,我无法让我的第二个项目自动添加被忽略的文件,实际上,我只想使用简单的.gitignore方法.

有谁知道如何覆盖Android Studio的被忽略的文件列表,而只是使用.gitignore?我希望能够轻松地将我的.gitignore复制到我制作的所有其他项目中,但似乎无法复制设置>版本控制>忽略的文件.

感谢您评论我如何才能使用.gitignore.

git android repository gitignore

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