小编B T*_*B T的帖子

Android Studio:默认项目目录

每当我创建一个新项目时,Android Studio都希望将它放在一个类似于(取决于OS - Ubuntu)的位置的通用默认文件夹中:

/home/USER/AndroidStudioProjects/
Run Code Online (Sandbox Code Playgroud)

我想将此目录更改为其他位置.除了在创建每个项目时选择这个新位置,是否有设置(找不到)或path variable(找不到任何文档)可以将此目录(例如/home/USER/Projects/AndroidStudio/)设置为默认值?

类似于在Eclipse中更改工作空间的东西是我正在寻找的.

android path project android-studio

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

具有自定义视图的AlertDialog:调整大小以包装视图的内容

我在我正在构建的应用程序中遇到此问题.请忽略所有设计缺点和缺乏最佳实践方法,这纯粹是为了展示我无法解决的一个例子.

我有DialogFragment一个AlertDialog使用自定义View设置返回基本AlertDialog.Builder.setView().如果这View有特定的大小要求,我如何Dialog正确调整自身大小以显示自定义中的所有内容View

这是我一直使用的示例代码:

package com.test.test;

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-alertdialog android-dialogfragment

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

无法更新Android Studio - 仅下载

我暂时没有更新我的Android Studio,在尝试更新时会显示此对话框: 在此输入图像描述

通常会有"更新并重新启动"选项,但不在此处.唯一的选择是"下载",它指示我这里我只能再次下载整个包,这给了我一个Build Number - 130.737825的链接.你可以在我已经拥有之前看到它,所以我不明白这将如何解决这个问题?

我觉得我错过了一些明显的东西,但我怎么能像以前一样更新?

android intellij-idea updates android-studio

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

PorterduffXfermode:清除位图的一部分

目标只是绘制一个位图,并在其顶部绘制消除位图底层区域的形状.

我创建了简单的概念证明代码,试图理解我应该如何去做.在这里的各种线程中,我发现了许多关于使用的提示:

android.graphics.PorterDuff.Mode.CLEAR
Run Code Online (Sandbox Code Playgroud)

下面的代码只是创建一个蓝色背景的屏幕,并添加自定义视图.此视图在其画布上绘制粉红色背景,位图图像(带有轻微边框以显示粉红色背景),黄色覆盖圆圈表示每个PorterDuffXfermode.

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Paint.Style;
import android.graphics.PorterDuff.Mode;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.RelativeLayout;

public class Test extends Activity {
    Drawing d = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        RelativeLayout.LayoutParams rlp = null;

        // Create the view for the xfermode test
        d = new Drawing(this);
        rlp = new RelativeLayout.LayoutParams(600, 900);
        rlp.addRule(RelativeLayout.CENTER_IN_PARENT);
        d.setLayoutParams(rlp);

        RelativeLayout rl = new RelativeLayout(this); …
Run Code Online (Sandbox Code Playgroud)

java android bitmap ondraw android-canvas

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

Android源代码和repo - 获取代码时到底发生了什么

我在使用repoAndroid源代码的最小方面遇到了很多简短的问题,或者对我们使用的内容进行了非常广泛的定义,repo结果并没有真正理解发生了什么repo.我按照Android Source网站上的说明操作.我这样做是repodir因为所有文件都与此相关.

初始化和同步回购:

repo init -u https://android.googlesource.com/platform/manifest
repo sync
Run Code Online (Sandbox Code Playgroud)

完成后,我的文件夹中充满了android类型文件夹(bionic,bootable等等)和一个隐藏.repo文件夹.值得注意的是,有一个ics-mr1与特定版本相关的文件夹,repodir它本身包含了大部分相同的文件夹.

拉下一个特定的分支:

repo init -u https://android.googlesource.com/platform/manifest -b gingerbread
repo sync
Run Code Online (Sandbox Code Playgroud)

这相对较快地完成,我看到的主要变化是现在有一个名为的文件夹gingerbread(所有原始文件夹似乎都保留).

我现在尝试这个并且需要时间:

repo init -u https://android.googlesource.com/platform/manifest -b android_4.2.2_r1
repo sync
Run Code Online (Sandbox Code Playgroud)

之后,它仍然包含相同的gingerbreadics-mr1一些新的随机文件夹(如abi),但似乎没有任何新版本.

这个问题

从结果来看,我看到我真的不明白我的行为到底是做什么以及如何实现我想要的.

如何获取master源的整个分支的本地版本,然后在我认为合适的情况下在分支之间正确更改?我现在的方式似乎是错误的,因为分支更改后留下的文件似乎不合逻辑.

为了进一步说明,有没有一种有效的方法同时拥有众多分支的本地副本,以便我可以比较每个分支的组成部分(显然每次都不重新下载它们)?

我问这些问题有很大的理解(我无法找到明确的一致信息),所以任何有关答案的额外信息都有助于理解实际做的事情.

java git android repository android-source

26
推荐指数
1
解决办法
3398
查看次数

如何强制子类在java中设置变量?

我有一个类定义给定屏幕的所有基本参数.从这里,应用程序中的每个屏幕都是此类的子类.我需要每个屏幕(即子类)在其实现中设置变量的值(即,每个屏幕必须定义它在导航树中的级别).

另外,理想情况下,这个变量应该final是在子类中设置的时候(我意识到这可能是不可能的).

最好的方法是什么?有没有办法在Java中正确执行这种类型的行为?

java conceptual

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

AutoCompleteTextView:删除背面的软键盘而不是建议

使用时AutoCompleteTextView,会出现下拉建议列表,软件键盘仍然可见.这是有道理的,因为输入随后的字符以缩小列表通常会更有效.

但是,如果用户想要浏览建议列表,则软件键盘仍处于运转状态时变得非常繁琐(当设备处于横向时,这更是一个问题).如果没有键盘占用屏幕空间,导航列表会容易得多.不幸的是,当您按下后退键时,默认行为会首先删除列表(即使在后退键的软件版本中,它显示的图像显示"按此键将隐藏键盘").

这是一个准系统示例,演示了我在说什么:

public class Main2 extends Activity {
    private static final String[] items = {
            "One",
            "Two",
            "Three",
            "Four",
            "Five"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AutoCompleteTextView actv = new AutoCompleteTextView(this);
        actv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        actv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
        actv.setThreshold(1);

        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);
        ll.addView(actv);

        setContentView(ll);
    }
}
Run Code Online (Sandbox Code Playgroud)

除了这是不直观的事实(后面的键提示暗示背压将被发送到键盘),它使得导航AutoCompleteTextView建议非常无聊.

什么是最不具侵入性的方式(例如,onBackPressed()在每个活动中捕获后面并相应地路由它肯定不是理想的)使第一次按下后隐藏键盘,第二次删除建议列表?

keyboard android autocompletetextview android-softkeyboard onbackpressed

17
推荐指数
1
解决办法
5893
查看次数

Android:Bitmap to Byte Array and back:SkImageDecoder :: Factory返回null

目标是将a转换Bitmap为a byte [],在Bundle数据中的活动之间传递,然后将其重新转换回Bitmap稍后阶段以便在a中显示Imageview.

问题在于,每当我尝试这个时,我只得到一个空位图和非描述性,无用的日志输出:

12-07 17:01:33.282: D/skia(2971): --- SkImageDecoder::Factory returned null

我看过以下解决方案:

解决方案将位图提供给使用的byte []代码

突出显示copyPixelsToBuffer()对.compress至关重要

(特别是因为在这种情况下没有必要).

我已经运行了以下测试用例,这肯定会将问题缩小到转换和恢复代码.根据我的调试,有正确的解码,字节数组是正确的大小和完整,位图配置被迫是相同的,decodeByteArray只是失败:

package com.example.debug;

import java.nio.ByteBuffer;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
    RelativeLayout rl = null;
    RelativeLayout.LayoutParams rlp = null;

    ImageView ivBef = null;
    ImageView ivAft = null;

    Bitmap bmBef = null;
    Bitmap bmAft = null; …
Run Code Online (Sandbox Code Playgroud)

java android bytearray bitmap android-imageview

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

活动和片段生命周期和方向变化

我一直有非常奇怪的问题Fragments和方向更改导致强制关闭而不遵循逻辑模式.

我创建了一个简单ActivityFragment生命周期调试应用程序,它只是实现的每一步活动的生命周期片段的生命周期由报告调用logcat的.

以下是TestActivityTestFragment类:

测试活动

public class TestActivity extends Activity {
    Context ct = null;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Log.e("ACT", "onCreate called");

        ct = getApplicationContext();

        FrameLayout fl = new FrameLayout(ct);
        fl.setId(1000);

        TestFragment tf = new TestFragment();
        getFragmentManager().beginTransaction().add(fl.getId(), tf, "").commit();

        setContentView(fl);
    }

    @Override
    protected void onStart() {
        Log.e("ACT", "onStart called");
        super.onStart();
    }

    @Override
    protected void onResume() {
        Log.e("ACT", "onResume called");
        super.onResume();
    }

    @Override
    protected void …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-fragments android-activity

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

片段:删除视图中的所有片段

我面临的情况是,在我的应用程序中,我有一个单一窗格双窗格样式布局.对于每种不同的布局样式,我使用的功能可以在给定所需的屏幕时正确设置布局,而不是单独处理屏幕之间可能的每一个导航操作.

它基本上是switch应用程序switch中每个屏幕的语句,每个屏幕都有一个嵌套语句来处理每种布局样式.这就是我在代码中所说的:

protected void setupScreen() {
    switch(currentScreen) {
    case SCREEN_ONE:
        switch(currentLayout) {
        case SINGLE_PANE:
            // Perform actions to setup the screen
            break;
        case DUAL_PANE:
            // Perform actions to setup the screen
            break;
        }
        break;
    case SCREEN_TWO:
        switch(currentLayout) {
        case SINGLE_PANE:
            // Perform actions to setup the screen
            break;
        case DUAL_PANE:
            // Perform actions to setup the screen
            break;
        }
        break
    // ... etc ....
    }
}
Run Code Online (Sandbox Code Playgroud)

在我要执行设置屏幕操作的部分中,这包括以下基本三个操作:

// Create the …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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