小编Ste*_*eve的帖子

在Android中,如何将背景从一种颜色平滑淡化到另一种颜色?(如何使用线程)

我已经玩了几个星期的Android编程,我想尝试一些看似简单的工作,但我想我错过了一些东西.

我要做的是让背景从白色到黑色平滑淡化.

我尝试了一些东西,但似乎都没有.

我做的第一件事是使用for循环和LinearLayout的setBackgroundColor方法,将R,G和B值一起从0更改为255.它不起作用.

我可以进行一次设置更改,但是当我执行循环时,我只得到最后一个值.我认为正在发生的是UI在循环正在进行时锁定并在循环结束时解冻.我已经尝试在循环中放置延迟(丑陋的嵌套循环延迟和Thread.sleep),但都无济于事.

任何人都可以给我任何关于如何使这个工作的指示?我是否需要第二个线程才能更改颜色?我对线程有一个模糊的概念,虽然我从未使用它们.

我的示例代码大致显示了我要做的事情如下:

main.xml是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/screen"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

而我的java代码是(0.01 inc.只是作为一个丑陋的延迟机制,试图看到颜色的变化缓慢变化):

package nz.co.et.bgfader;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;

public class bgfader extends Activity {

    LinearLayout screen;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        screen = (LinearLayout) findViewById(R.id.screen);
        for (int i = 0; i < 65535; i+=0.01) {
            screen.setBackgroundColor(0xff000000 + i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激 …

android

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

Google App Engine - 使用Python 2.7获取会话

首先,我对GAE来说是全新的,所以我可能会以错误的方式做到这一点 - 但我之前使用过的是PHP,会话是我保持持久数据的方式.我正在使用Python 2.7,因为这是我用于所有其他Python开发的东西 - 尽管我开始怀疑降级到2.5是否可能是一个有效的解决方案,如果不是理想的解决方案.

场景是我正在构建一个概念验证站点,我需要一个"虚拟"登录按钮,它只需设置一个名为'user'的会话变量,其值为'admin'.然后我想检查导航模板以查看变量是否已设置,如果是,我将添加一些额外的菜单命令.非常简单. (注意:我知道这不安全,不合理或者应该做的任何事情 - 问题是会话不起作用,而不是我正在做的事情 - 我在代码中使用其他一些东西session - 部署时没有一个工作正常

似乎有一些不同的会话库用于GAE与Python,我尝试了谷歌搜索中最广泛推荐的那个 - gaeutilities,但是这会导致错误并且不起作用(我最终偶然发现这篇文章解释它只是与Python 2.7不兼容).再多一点搜索引导我从appenginelearn.com浏览这个库,我把它放进去并且它完美地工作......直到我部署它 - 然后它什么也没做.我会喜欢一些指示或建议,为什么这可能会失败.这是我正在使用的相关代码:

我将appenginelearn.com的util库目录放在应用程序目录的根目录中,然后导入Session:

from util.sessions import Session
Run Code Online (Sandbox Code Playgroud)

然后我添加了Login和Logout类:

class LogIn(webapp2.RequestHandler):
    def get(self):
        self.session = Session()
        self.session['user'] = 'admin'
        # Return the user to the page they logged in from
        referer = self.request.environ['HTTP_REFERER'] \
                if 'HTTP_REFERER' in self.request.environ \
                else '/'
        self.redirect(referer)

class LogOut(webapp2.RequestHandler):
    def get(self):
        self.session = Session()
        self.session.delete_item('user')
        self.redirect('/')
Run Code Online (Sandbox Code Playgroud)

主类中的以下(可怕)代码(这将在演示中的所有页面完成)

class MainPage(webapp2.RequestHandler): …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine session-variables python-2.7

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

在Java中嵌套try/catch语句是否可以接受?

我试图从传入的值(使用Bundle)在Android中创建一个IP地址,如果失败,我将使用硬编码的默认IP地址创建它.如果失败,那么我退出应用程序.

我想知道的是,如果可以像我在这里做的那样嵌套try/catch,或者是否有更好的方法.

try {
    // serverSettings is the Bundle name that was passed in.
    ipAddress = InetAddress.getByName(serverSettings.getString("serverIp"));
} catch (UnknownHostException e) {
    Log.e("ERROR:", "IOException: Failed to create IP, trying default");
    try {
        // DEFAULT_IP is the hard-coded default fall-back address
        ipAddress = InetAddress.getByName(DEFAULT_IP);
    } catch (UnknownHostException e1) {
        Log.e("ERROR:", "IOException: Total fail, exiting");
        e1.printStackTrace();
        finish();
    }
}
Run Code Online (Sandbox Code Playgroud)

java android exception-handling try-catch

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

Java MulticastSocket导致空指针异常

我正在尝试使多播套接字在“服务器”应用程序上工作,该应用程序会将信息吐到一堆Android手机上。负责设置套接字并发送一些数据的代码段如下:

    private MulticastSocket multisocket;
    private DatagramPacket packet;
    private InetAddress addr;
    private Question question;

    byte[] buffer = "Some text to be sent".getBytes();
    packet = new DatagramPacket(buffer, buffer.length);

    try {
        addr = InetAddress.getByName("228.5.6.7");
        multisocket = new MulticastSocket(4446);
        multisocket.joinGroup(addr);

    } catch (IOException e) {
        e.printStackTrace();
    }
    try {
        System.out.println("Sending...");
        multisocket.send(packet); // This is the line it dies on...     
        System.out.println("Text sent, closing socket");
        multisocket.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

发生的情况是,它到达了该multisocket.send(packet);行并死于以下堆栈跟踪信息:

Exception in thread "SendThread" java.lang.NullPointerException: null address || null buffer …
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception multicastsocket

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