小编nha*_*man的帖子

带动画的ActivityGroup切换视图

所以我有这个ActivityGroup,其中我展示了2个活动.当我正在切换时我希望有这种过渡效果,当前视图向左滑出屏幕,新视图从右侧进入.这是我的切换代码,假设当前视图是viewA:

Intent i = new Intent(this, ViewA.class);
viewB = getLocalActivityManager().startActivity("viewb", i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
setContentView(viewB);
Run Code Online (Sandbox Code Playgroud)

现在当我执行以下操作时,将显示viewB的背景,并且viewB的内容会滑入,这不是我想要的:

Animation animIn = AnimationUtils.loadAnimation(this, R.anim.righttoleftin);
viewB.startAnimation(animIn);
Animation animOut = AnimationUtils.loadAnimation(this, R.anim.righttoleftout);
viewA.startAnimation(animOut);

setContentView(viewB);
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?


实际上,上面的确有效.我有一个问题,我认为viewA被显示,而事实并非如此.

animation android activitygroup

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

Android模拟器:无法分配内存:8甚至8MB RAM

我正在尝试启动模拟器,但我不断收到错误Failed to allocate memory: 8.

有一些解决这个问题的方法,将RAM设置为1024到512,但是当我将它设置为8时,它仍然会因此错误而崩溃!

我该怎么办?

设置屏幕截图:

在此输入图像描述

这里给出了崩溃的模拟器arm.exe的错误消息:

Problem signature:
  Problem Event Name:   APPCRASH
  Application Name: emulator-arm.exe
  Application Version:  0.0.0.0
  Application Timestamp:    4fe779fb
  Fault Module Name:    emulator-arm.exe
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   4fe779fb
  Exception Code:   40000015
  Exception Offset: 0014428e
  OS Version:   6.1.7600.2.0.0.768.3
  Locale ID:    1043
  Additional Information 1: ea2b
  Additional Information 2: ea2b4716fbf9f89aacc15214fb1537bb
  Additional Information 3: 8d2f
  Additional Information 4: 8d2f162ccf8522e475fc4fbe036a6efa
Run Code Online (Sandbox Code Playgroud)

我最后一次检查和模拟器工作是在更新到ADT 20之前和删除所有旧的AVD之前.

android android-emulator

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

无法使用Android从测试源访问内部组件

我有以下结构:

build.gradle
src
 - main
   - AndroidManifest.xml
   - kotlin 
     - pkg
       - MyClass.kt (internal class MyClass)
 - test
   - kotlin
     - pkg
       - MyClassTest.kt   
Run Code Online (Sandbox Code Playgroud)

MyClassTest.kt我参考internal class MyClass.


build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//apply plugin: 'java'
//apply plugin: 'kotlin'

android {
  compileSdkVersion 23
  buildToolsVersion "23.0.2"

  sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
    test.java.srcDirs += 'src/test/kotlin'
  }
}

dependencies {
  testCompile 'junit:junit:4.12'
  compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}

buildscript {
  ext.kotlin_version = '1.0.0-beta-2423'
  repositories {
    mavenCentral()
  }
  dependencies { …
Run Code Online (Sandbox Code Playgroud)

android kotlin

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

Android SurfaceView没有显示onDraw

为了简单问题,我在SurfaceView上绘制一个整数,每次绘制增加1.实际上正在增加,正如我在System.out上看到的那样.屏幕上的文字保持为"0".谁能告诉我我做错了什么?

SurfaceViewTest.java

package com.niek.surfaceviewtest;

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

public class SurfaceViewTest extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Run Code Online (Sandbox Code Playgroud)

StatusView.java

package com.niek.surfaceviewtest;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class StatusView extends SurfaceView implements SurfaceHolder.Callback {

    private int tmp;
    private DrawThread drawThread;

    public StatusView(Context context, AttributeSet attrs) {
        super(context, attrs);
        getHolder().addCallback(this);
        setFocusable(true);
        drawThread = new DrawThread(getHolder());
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android surfaceview ondraw

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

使用SearchView自定义搜索实现

我想在我的应用中实现搜索,但我不想使用单独的Activity来显示我的搜索结果.相反,我只想使用显示在下面的建议清单SearchView.

我可以用setOnQueryTextListenerSearchView,听的输入和搜索结果.但是如何将这些结果添加到下面的列表中SearchView呢?我们假设我正在搜索List<String>.

search android

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

订阅或绑定到现有的Intent服务

我有一个应用程序具有初始激活,列出列表视图中的一些文件.在列表中单击某个项目时,它会将您带到该特定文件的详细活动.

在详细视图中,我有一个名为download的按钮,当您单击下载时,它会启动一个IntentService,它会将要下载的文件设置为:

downloadButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(AppDetailsActivity.this, AppDownloadService.class);
        intent.putExtra(Consts.APP_DOWNLOAD_RECEIVER_KEY, new DownloadReceiver(new Handler()));
        startService(intent);
    }
});
Run Code Online (Sandbox Code Playgroud)

DownloadReceiver类用于更新下载文件详细活动中的进度条.

现在我想做什么......

如果用户当前正在从详细活动中下载文件,然后返回到上一个活动,我希望活动以某种方式订阅/绑定到同一个IntentService并检索结果,以便它可以在列表中显示进度条正在下载的文件的项目.

  1. 这可能使用IntentService吗?
  2. IntentService是正确的吗?
  3. 有没有例子(因为我没有找到任何显示我如何做的事情)?

android android-intent android-service intentservice

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

如何使用片段组织应用程序?

我目前正在重新编码我的 android 应用程序的大部分后端,以便更紧密地遵循设计指南。目前我正在使用所有活动和零片段。我正在尝试切换到片段以使用滑出导航绘制并最终使用一些滑动选项卡。

对于现在的导航,我有这个下拉菜单,当点击一个项目时会启动一个新的活动:

在此处输入图片说明

“您的统计信息”活动有点像主页,用户也将在其中进入应用程序。我还希望用户能够从应用程序的任何位置返回到该“页面”。

我计划运行绘图的活动我有一个名为 fragment_main 的绘图布局:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <FrameLayout
        android:id="@+id/main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

    <ListView
        android:id="@+id/drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#FFF"
        android:choiceMode="singleChoice"/>

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我加载抽屉布局的活动是:

public class MainDraw extends FragmentActivity {
    final String[] data ={"one","two","three"};
    final String[] fragments ={
            "com.beerportfolio.beerportfoliopro.FragmentOne",
            "com.beerportfolio.beerportfoliopro.FragmentTwo",
            "com.beerportfolio.beerportfoliopro.FragmentThree"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);

        //todo: load statistics

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, data);

        final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
        final ListView navList = (ListView) findViewById(R.id.drawer);
        navList.setAdapter(adapter);
        navList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-navigation

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

动画取消动画

说我是从动画按钮x=0x=200使用:

ObjectAnimator animator = ObjectAnimator.ofFloat(button, "x", 0f, 200f);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start();
Run Code Online (Sandbox Code Playgroud)

现在,当按钮处于x=100,我想取消动画.当我打电话时animator.cancel(),按钮突然停止.我想要实现的是x价值逐渐减慢(有点像a DecelerateInterpolator),并且整齐地停下来,比如说x=120.

当然,我可以cancel()动画并启动一个新的减速动画师.但是,这不会考虑按钮的当前速度,从而导致奇怪的行为.

我该怎么做?

android

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

Gradle无法解析库中的所有依赖项,自定义maven url

我正在使用Crashlytics,它提供了一个自定义的Maven网址.我正在尝试将Crashlytics代码移动到库中.

build.gradle文件如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.+'
    }
}

repositories {
    mavenCentral()
    maven { url 'http://download.crashlytics.com/maven' }
}

dependencies {
    compile 'com.crashlytics.android:crashlytics:1.+'
}
Run Code Online (Sandbox Code Playgroud)

在自己构建这个库项目时,一切顺利.但是,当我将库作为依赖项添加到另一个项目时,只有当我将自定义maven url添加到其中时,gradle sync才会成功build.gradle.否则,将显示以下消息:

Error:A problem occurred configuring project ':MyApp'.
> Could not resolve all dependencies for configuration ':MyApp:_debugCompile'.
   > Could not find any version that matches com.crashlytics.android:crashlytics:1.+.
     Required by:
         my-app:MyApp:unspecified > my-app:MyLibrary:unspecified
Run Code Online (Sandbox Code Playgroud)

为什么我还需要添加maven { url 'http://download.crashlytics.com/maven' }MyApp项目中?有更好的解决方案吗?

android gradle android-studio

5
推荐指数
0
解决办法
1175
查看次数

Proguard同时Butterknife库和其他警告

我的活动,片段,服务和BroadcastReceivers我想实现ProGuard,以保证课堂安全.我在Proguard时遇到错误.我该怎么写入文件? - > proguard-android.txt ve proguard-rules.pro

我写进了年级.

  lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

-

Information:Gradle tasks [:app:assembleRelease]
:app:preBuild UP-TO-DATE
:app:preReleaseBuild UP-TO-DATE
:app:compileReleaseNdk UP-TO-DATE
:app:checkReleaseManifest
:app:preDebugBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareComGithubNavasmdcMaterialDesign14Library UP-TO-DATE
:app:prepareDeKeyboardsurferAndroidWidgetCrouton185Library UP-TO-DATE
:app:prepareReleaseDependencies
:app:compileReleaseAidl UP-TO-DATE
:app:compileReleaseRenderscript UP-TO-DATE
:app:generateReleaseBuildConfig UP-TO-DATE
:app:generateReleaseAssets UP-TO-DATE …
Run Code Online (Sandbox Code Playgroud)

java android proguard butterknife

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