小编Ham*_*lik的帖子

将colorPrimary转换为colorPrimaryDark(暗多少)

在Material Design的指导中,状态栏应该比动作栏更暗?我在运行时为操作栏设置了一个颜色集,并且无法在编程时知道这种颜色,那么如何才能获得正确的状态栏颜色?

我知道我可以用它来变暗颜色

this.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(colorPrimary));                              
float[] hsv = new float[3];
Color.colorToHSV(colorPrimary, hsv);
hsv[2] *= 0.8f;
int colorPrimaryDark = Color.HSVToColor(hsv);

if(Build.VERSION.SDK_INT>=21)
    Chat.this.getWindow().setStatusBarColor(colorPrimaryDark);
Run Code Online (Sandbox Code Playgroud)

但我不确定它会变暗多少

java android material-design

16
推荐指数
4
解决办法
4505
查看次数

如何在LibGDX应用程序中找到软键盘的高度

我正在开发一款带有LibGDXAndroid游戏.我需要找到用户正在使用的软键盘的高度,因为我想在键盘正上方显示一些对象.

我已经读过这个帖子: 我怎样才能在android上获得软键盘高度?

但评论表明它不起作用,它似乎也适用于Android SDK.我不确定.有谁知道一定会有用的方法吗?

keyboard height libgdx

10
推荐指数
1
解决办法
983
查看次数

有没有办法在收到推送通知时唤醒iOS应用程序,即使它已被杀死

我需要一种方法来接收静默推送通知,然后显示本地通知(所以我可以在显示给用户之前处理数据)有没有办法做到这一点? didReceiveNotification仅在前景时调用.我相信该应用程序是在接收推送时在后台启动的.但是,似乎没有解决应用程序何时被杀死的问题.

编辑我知道PushKit,但我的应用程序不是VOIP应用程序,它是一个IM应用程序.

background-process push-notification ios

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

Swift中的Base64编码不会在Android中解码

我有一个Android应用程序,它使用Base64编码图像,编码字符串存储在服务器上.我现在正在为同一个应用程序制作一个iOS客户端,并且正在努力使其以相同的方式编码图像.在Android端编码的图像将在Swift iOS中解码,但在Swift中编码的图像将不会在Android中解码,或者在此处http:/ /www.freeformatter.com/base64-encoder.html(生成的文件不是有效图像)

在iOS中编码的图像将在iOS中解码

在Android中,我使用以下内容进行编码和解码

public static String encodeBitmap(Bitmap bitmap) {
    Bitmap immagex = bitmap;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    immagex.compress(Bitmap.CompressFormat.PNG, 100, baos);
    byte[] b = baos.toByteArray();
    String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
    return imageEncoded;
}

public static Bitmap decodeBitmap(String encodedString) {
    byte[] decodedByte = Base64.decode(encodedString, Base64.DEFAULT);
    Bitmap b = BitmapFactory.decodeByteArray(decodedByte, 0,
            decodedByte.length);
    return b;
}
Run Code Online (Sandbox Code Playgroud)

以下是iOS方面的内容

static func decodeImage(str: String) -> UIImage?{
    if let decodedData = NSData(base64EncodedString: str, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters){
        var iconValue:UIImage? = UIImage(data: decodedData)
        return iconValue
    } …
Run Code Online (Sandbox Code Playgroud)

base64 android image ios swift

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

使用iOS键盘键入时,表情符号在NSAttributedString中不显示,在Android上键入时表示

我正在制作一个混合应用程序,当我从Android端发送表情符号时,它在iOS端显示正常,但iOS方面不能(似乎)显示来自iOS自己键盘的表情符号!

我在显示表情符号的标签使用了属性文本,文本来自HTML.以下代码用于生成NSAttributedString

var msg = getTextForDisplay()//Essentially gets the plain text
msg = "<span style=\"font-family: Helvetica; font-size:14pt;\">" + msg + "</span>"
if let data = msg.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false){
    let attributed = try? NSAttributedString(data: data, options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType ], documentAttributes: nil)
    return attributed
}
Run Code Online (Sandbox Code Playgroud)

更奇怪的是,当我从iOS发送表情符号时,虽然它没有如上所述在标签中显示,但它确实在Android端显示完全正常.在iOS方面,在标签中,它显示了看似乱七八糟的东西(也许是unicode chasracters?)

例如: 在此输入图像描述

我绝对肯定错误是表情符号的显示,因为当打印到控制台时,我看到真正的表情符号,并且当保存到设备存储器并稍后在Mac上阅读时,它是真正的表情符号.但是当表情符号加载到属性标签中时,它显示出乱码

任何帮助表示赞赏.我理解这个问题与编码有关我只是不确定究竟是什么问题以及如何解决它

android utf-16 nsattributedstring ios emoji

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

typeanumber中的错误 - 无法解析android.support.v4.app.fragment

我使用eclipse ide并且最近决定试用Google Play游戏服务.我遵循这个教程:

https://developers.google.com/games/services/android/quickstart#before_you_begin

通过使用android SDK管理器下载,然后将文件夹复制到我的工作区,我添加了谷歌播放服务SDK.然后我从现有代码中使用了file> import> android>项目.

在第三步中,它让我去导入typeanumber项目.但是,只要我导入它就会出现错误.

难道我做错了什么?

我四处搜索但似乎没有任何帮助

eclipse google-play-games

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

在活动负载上调用方法,Android

我想在活动加载后立即调用方法.该方法是公共空白.任何帮助,将不胜感激

methods android call

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

哪里可以获得Lollipop的sdk可绘制资源

每个Android版本都带有一些可绘制的文件,作为sdk的一部分

SDK>平台> VERSION>数据>水库>可绘制-SIZE

但是,并非v21文件夹中的所有文件都是Material.例如,我找不到像本周发布的新GMail应用程序中看到的新版ic_menu_edit此外,在Android开发者网站上,Actionbar图标包还没有新版本(https://developer.android. com/design/downloads/index.html)

我在哪里可以买到它们?

sdk resources android material-design android-5.0-lollipop

3
推荐指数
1
解决办法
3354
查看次数

获取Swift中的联系人姓名和电话号码

我知道这已被问了很多,但我很难找到一个完整的解决方案,而我找到的少数是在Objective C中

我成功地做到了这一点

public static func refreshContacts(){
    let status = ABAddressBookGetAuthorizationStatus()
    if status == .Denied || status == .Restricted {
        // user previously denied, to tell them to fix that in settings
        return
    }

    // open it

    var error: Unmanaged<CFError>?
    let addressBook: ABAddressBook? = ABAddressBookCreateWithOptions(nil, &error)?.takeRetainedValue()
    if addressBook == nil {
        println(error?.takeRetainedValue())
        return
    }

    // request permission to use it

    ABAddressBookRequestAccessWithCompletion(addressBook) {
        granted, error in

        if !granted {
            // warn the user that because they just denied permission, this functionality …
Run Code Online (Sandbox Code Playgroud)

ios swift

3
推荐指数
1
解决办法
4963
查看次数

Swift 2 - m4a 文件无法在 iOS 上播放

我正在尝试以编程方式在 iOS 设备上播放 m4a 文件。该文件从服务器下载并存储。当用户按下按钮时,它被播放。该文件从设备复制到 OSX 时播放正常。我正在使用代码

var player:AVAudioPlayer = AVAudioPlayer()

func playAudio(sender: UIButton!) {
    let audioPath = FileUtils.getPath(audioPaths[sender.tag])
    print("PATH " + audioPath)//The printed path IS DEFINETLY correct
    do{
        player = try! AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: audioPath))
        player.prepareToPlay()
        player.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

路径是正确的,所以我不确定为什么它不起作用。可能是格式(即使它在 OSX 上播放)?

示例文件:https : //www.dropbox.com/s/csewwg6n9vzan5z/131015-08%3A13%3A30.m4a?dl=0

m4a avaudioplayer ios swift2

0
推荐指数
1
解决办法
1848
查看次数

在java中递增一个数字,直到达到100,然后连续递减到0

我正在制作一个有守门员的游戏.我希望他永远来回走动.我有一个名为goalieposx的int(x轴上的守门员位置),我希望它上升1,直到它达到200,然后向下一直到它的后面为0并重复.我试过以下

//this bit isnt in the method, its outside as global varibale
boolean forward=true

//this bit is in a method which is continiouly called nonstop
if (goalieposx<200){
        forward=true;
    }
    else if (goalieposx>200){
        forward=false;
    }
    System.out.println(forward);

    if(forward=true){
        goalieposx++;
        System.out.println("forward");
    }
    else if (forward=false){
        goalieposx--;
        System.out.println("backwards");
    }

}
Run Code Online (Sandbox Code Playgroud)

这种方法被连续调用.它打印为true,直到达到200,然后打印为false.但是,它始终向前打印,从不向后打印.所以结论是:布尔值按预期变化,但第一个if总是被调用,它似乎忽略了条件

我也试过这个

           if(forward = true){
        if(goalieposx==200){

            forward=false;

        }
        else{
        goalieposx++;}
    }
    else{
        if(goalieposx==0){
            forward=true;
        }
        else{
        goalieposx--;}
             System.out.println(goalieposx);
    }
Run Code Online (Sandbox Code Playgroud)

但这也不起作用,它打印1然后2等达200,然后永远打印200.谁知道我怎么解决这个问题?是一个if语句完全错误的想法?

java increment

-1
推荐指数
1
解决办法
3130
查看次数