小编Tan*_*.7x的帖子

Android View.getDrawingCache返回null,仅返回null

有人请尝试向我解释原因

public void addView(View child) {
  child.setDrawingCacheEnabled(true);
  child.setWillNotCacheDrawing(false);
  child.setWillNotDraw(false);
  child.buildDrawingCache();
  if(child.getDrawingCache() == null) { //TODO Make this work!
    Log.w("View", "View child's drawing cache is null");
  }
  setImageBitmap(child.getDrawingCache()); //TODO MAKE THIS WORK!!!
}
Run Code Online (Sandbox Code Playgroud)

ALWAYS记录绘图缓存为空,并将位图设置为null?

在设置缓存之前,我是否必须实际绘制视图?

谢谢!

android android-view

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

如何确定Gradle的版本?

如何知道我在Android Studio中使用的Gradle版本?请指导.

我想确保我使用的是Gradle版本2.2.1.

android gradle

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

Gradle:为库的特定风格添加依赖项

我有一个图书馆项目和一个应用程序.我想为图书馆和应用程序提供2种产品口味(商店,开发).当我为应用程序构建商店风味时,我想使用库中的商店风味.此外,当我为应用程序构建dev风格时,我想使用库中的dev风格.我尝试为库和应用程序设置相同的产品风格,但它不起作用.

这是我的配置:

图书馆

apply plugin: 'android-library'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        applicationId "ro.amarkovits.graddletest.lib"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors{
        store{

        }
        dev{

        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

我有这些文件:src/main/res/values/strings.xml和src/store/res/values/strings.xml

应用

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
    defaultConfig {
        applicationId 'ro.amarkovits.mymodule.app'
        minSdkVersion 14 …
Run Code Online (Sandbox Code Playgroud)

android gradle library-project android-productflavors

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

已经调用了Android FragmentTransaction提交

我的错误:

java.lang.IllegalStateException:已经调用了commit

我的代码:

final FragmentTransaction fragmentTransaction =getFragmentManager().beginTransaction();

f1_fragment  = new F1_Fragments();
f2_fragment = new F2_Fragments();

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            parent.getItemAtPosition(position);

            if(position==0){
                fragmentTransaction.replace(android.R.id.content, f1_fragment);
            }else{
                fragmentTransaction.replace(android.R.id.content, f2_fragment);
            }

            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }
    });
Run Code Online (Sandbox Code Playgroud)

android android-fragments fragmenttransaction

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

如何使用@PreviewParameter注解?

我正在尝试预览一个以一个字符串参数作为输入的可组合项。我不确定@PreviewParameter注释应该如何使用。

这是我尝试过的

class DogProvider : PreviewParameterProvider<String> {
    override val values = listOf("Bela", "Stalone").asSequence()
}

@PreviewParameter(DogProvider::class)
@Composable
fun OverviewCard(
    dog: String,
    modifier: Modifier = Modifier
) {
    Text(dog)
}
Run Code Online (Sandbox Code Playgroud)

不渲染预览。如果我还添加@Preview注释,它表示我应该使用@PreviewParameter

android-jetpack-compose

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

Step Counter Google FIT API

我目前正在尝试使用Google Fit API.这是我第一个使用API​​的应用,我主要是关注Google的文档.

下面是我的代码似乎有问题

我遇到的问题是它似乎没有更新步骤计数器.

public class MainActivity extends Activity
        implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

        private static final String TAG = "FitActivity";
    //[START Auth_Variable_References]
        private static final int REQUEST_OAUTH = 1;
    // [END auth_variable_references]
        private GoogleApiClient mClient = null;

        int mInitialNumberOfSteps = 0;
        private TextView mStepsTextView;
        private boolean mFirstCount = true;

    // Create Builder View
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mStepsTextView = (TextView) findViewById(R.id.textview_number_of_steps);
        }


        private void connectFitness() {
            Log.i(TAG, "Connecting...");

            // Create the Google API Client
            mClient …
Run Code Online (Sandbox Code Playgroud)

android google-fit

18
推荐指数
1
解决办法
7859
查看次数

没有调用ArrayAdapter的getView()方法

我是android开发的新手.我正在尝试构建一个带有标签的应用程序(通过片段添加).在其中一个片段中,我试图显示一个列表.这个列表已经使用我从ArrayAdapter扩展的ListAdapter填充,并且我重载了getView()方法.这是我的片段

public class tabcontentActivity extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        if (container == null) {
            return null;
        }
        View v = (LinearLayout) inflater.inflate(R.layout.tablayout, container,
            false);
        ListView lv = (ListView) v.findViewById(R.id.listview1);
        ListViewAdapter adapter = new ListViewAdapter(container.getContext(),
            android.R.layout.simple_list_item_1, R.id.textview1);
        adapter.notifyDataSetChanged();
        lv.setAdapter(adapter);

        return v;
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我实现ListAdapter的方法

public class ListViewAdapter extends ArrayAdapter {
    Context context1;

    public ListViewAdapter(Context context,int resource, int textViewResourceId) {
        super(context,resource,textViewResourceId);
        this.context1 = context;
        System.out.println("here aswell!!!!!!");
        // TODO Auto-generated constructor stub
    }

    public View getView(int …
Run Code Online (Sandbox Code Playgroud)

android android-arrayadapter android-layout android-fragments

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

ActionBarDrawerToggle的ActionBarActivity - 不使用drawerImageRes

从这个Android示例开始,我试图创建一个使用支持版本的应用程序(android.support.v4和android.support.v7).

该示例创建一个如下所示的菜单抽屉

在此输入图像描述 在此输入图像描述

我的代码得到了这个

在此输入图像描述

请注意,图标是不同的,它的移动方式是不同的,在我的版本中,它不会移动.

示例代码

public class MainActivity extends Activity {
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    private String[] mPlanetTitles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTitle = mDrawerTitle = getTitle();
        mPlanetTitles = getResources().getStringArray(R.array.planets_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items …
Run Code Online (Sandbox Code Playgroud)

android drawerlayout android-actionbaractivity

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

Android中的InputMethodManager SHOW_FORCED和SHOW_IMPLICIT之间的区别

我想知道常数SHOW_FORCED和行为的差异SHOW_IMPLICIT.我试过了两个,看不出第一眼看上去有什么不同.

android android-input-method

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

棉花糖中的手电筒控制

我在最近的Marshmallow构造中有关于相机的问题,更具体地说是手电筒.在任何预先Marshmallow版本上,我需要做的就是打开/关闭闪光灯,如下所示:

private void turnFlashOn(final Camera camera, int flashLightDurationMs) {
    if (!isFlashOn()) {
        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            camera.setParameters(mParams);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

private void turnFlashOff(Camera camera) {
    if (camera != null) {
        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {
            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            camera.setParameters(mParams);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Marshmallow设备开始在野外崩溃.不知何故,camera.getParameters()camera.setParameters()开始失败的消息,如:

RuntimeException:getParameters失败(空参数)

RuntimeException:setParameters失败

我尝试在获取参数之前启动并停止预览,这不再引发错误.但是,当我打电话时,预览不会恢复camera.startPreview().

我担心释放相机并重新打开它是不可能的,因为这需要几秒钟而且会产生糟糕的体验.

有关如何可靠地打开/关闭Marshmallow手电筒的任何建议吗?

camera android android-camera flashlight android-6.0-marshmallow

13
推荐指数
2
解决办法
6126
查看次数