小编Den*_*Loh的帖子

CollapsingToolbarLayout:展开时更改主页按钮颜色

我已经实现了CollapsingToolbarLayoutChris Banes示例代码中的新功能.

但是,背景图像视图的图像都具有白色背景.工具栏主题是ThemeOverlay.AppCompat.Dark.ActionBar图标也是白色的,因此当CollapsingToolbarLayout完全展开时我看不到主页按钮.

随着app:expandedTitleTextAppearance我可以设置标题字段的颜色.是否还可以设置主页按钮和菜单图标的颜色?

android android-collapsingtoolbarlayout

20
推荐指数
2
解决办法
3874
查看次数

Android 6.0权限 - 放置权限请求的位置?

有了Androids新的权限系统,我想知道如何正确实现它.关于如何以及何时使用权限的教程似乎非常清楚.但是,我不知道谁请求权限以及请求它们的位置.

所以,基本上我的问题是:如果活动,谁开始另一个活动请求事先获得许可,或者需要许可的活动是否应该提出请求?

如果需要许可的活动应该请求它,我应该requestForPermission在里面onCreate还是在里面打电话onStart

虽然这似乎是非常简单的问题,但我没有在文档中找到任何提示.

谢谢.

android android-permissions android-6.0-marshmallow

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

在cocoapods podspec文件中定义标题搜索路径

我对我创建的框架的podspec文件的定义存在问题.我有以下文件结构:

/
|-- module1/<source files>
|-- module2/<source files>
...
|-- moduleN/<source files>
|-- core-api/
|    |-- module1/<header files>
|    |-- module2/<header files>
|    ...
|    +-- moduleN/<header files>
|-- framework.podspec
+-- framework.xcodeproj
Run Code Online (Sandbox Code Playgroud)

在XCode中我添加$(SRCROOT)/core-apiUSER_HEADER_SEARCH_PATHS以便Xcode可以正确找到公共头文件.

我的podspec文件如下所示:

s.default_subspec = 'module1'

s.subspec 'module1' do |ss|
  ss.source_files               = "module1/**/*.{h,m}"
end

s.subspec 'module2' do |ss|
  ss.source_files               = "module2/**/*.{h,m}"
end

...

s.subspec 'moduleN' do |ss|
  ss.source_files               = "moduleN/**/*.{h,m}"
end
Run Code Online (Sandbox Code Playgroud)

目前,没有指令定义core-api的头位置.当我这样做时,pod lib lint我得到错误,找不到相应的core-api标头.

我瞎搞用ss.header_dir,ss.header_mapping_dir,s.xcconfigUSER_HEADER_SEARCH_PATH,但他们没有为我工作. …

xcode specifications header cocoapods

8
推荐指数
1
解决办法
5582
查看次数

Google地图:iOS中的自定义LocationSource

我已经构建了一个Android应用程序,可以使用谷歌地图显示用户的地理位置,除了Wifi,单元格和GPS之外还有一些附加信息,例如QR码,信标或任何我用来发信号通知当前位置的信息(我不是t考虑到这些位置的实际准确性).我正在使用LocationSource它并通过setLocationSource将其传递给Google Maps API .

我必须使用Google地图,因为Apple地图在可用缩放级别方面受到限制,因此我无法放大建筑物.

是否有可能LocationManager通过某些操作提供定期更新的自定义,并将其注入Google Maps API,如LocationSource

我知道有一些黑客可以在地图上放置自定义标记,但这使得无法使用Google地图的其他功能,例如通过点击"我的位置"按钮将相机移动到用户位置.

谢谢.

android google-maps google-maps-api-3 ios

8
推荐指数
1
解决办法
318
查看次数

Android:浮动操作按钮内的细节动画

我正在努力熟悉Android Lollipop的新设计指南.因此,特别是对于动画,我尝试为图标或按钮实现类似这些详细动画:http://www.google.com/design/spec/animation/delightful-details.html

我想知道他们是怎么做到的?

在我的特殊情况下,我有一个浮动操作按钮,用于将商品放入购物车.在用户按下按钮后,我想要为该按钮内的可绘制图标设置动画.动画应具有滑动效果,其中推车移出按钮的底部,并且复选标记从按钮的顶部移入.

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

我找到了一个ViewFlipper(http://www.inter-fuser.com/2009/07/android-transistions-slide-in-and-slide.html),但是我想保持按钮就位,只为图标设置动画在按钮内.

另一方面,我发现了AnimationDrawables(http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html),但在那里,我必须手工创建每个帧,这也很奇怪.

实现这一目标的最佳方法是什么?

animation android floating-action-button android-5.0-lollipop

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

全屏表面视图隐藏了snackbar

我需要一些帮助来弄清楚我的Snackbars(设计支持)有什么问题,而这些问题并未出现.

我有一个VideoView(FrameLayout包含一个动态创建的SurfaceView).

布局文件是:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="false"
    android:id="@+id/coordinator"
    android:background="@android:color/white"
    tools:context="com.denisloh.typhoonCamera.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <VideoView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="top|start"
            android:background="@drawable/toolbar_gradient"
            android:theme="@style/AppTheme.AppBarOverlay"
            app:popupTheme="@style/AppTheme.PopupOverlay">

            <android.support.v7.widget.ActionMenuView
                android:id="@+id/action_bar"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content" />

        </android.support.v7.widget.Toolbar>

    </RelativeLayout>

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_camera_white_24dp" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

我用这个片段创建并显示小吃吧:

...
mCoordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
...

private void showWifiSettingsSnackBar(final String message) {
    Snackbar.make(
            mCoordinatorLayout,
            getString(R.string.wifi_error_open_settings, message),
            Snackbar.LENGTH_INDEFINITE)
            .setAction(R.string.wifi_settings, new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
                }
            }) …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-layout android-snackbar

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

如何在C ++中使用libav设置x264基线配置文件

我正在写一个小工具,它将视频转换为原始的h264文件。这些文件应稍后通过SIP电话播放。我有以下代码:

  eccx->pix_fmt = PIX_FMT_YUV420P;
  eccx->width = VIDEO_FRAME_WIDTH;
  eccx->height = VIDEO_FRAME_HEIGHT;
  eccx->time_base.num = 1;
  eccx->time_base.den = VIDEO_FRAMES_PER_SEC;
  eccx->max_b_frames = 0;

  eccx->rtp_payload_size = VIDEO_RTP_PAYLOAD_SIZE;

  eccx->bit_rate = VIDEO_BIT_RATE;
  eccx->rc_max_rate = VIDEO_BIT_RATE;
  eccx->rc_buffer_size = VIDEO_BIT_RATE * 2;

  eccx->flags |= CODEC_FLAG_QP_RD;
  eccx->flags |= CODEC_FLAG_LOW_DELAY;
  eccx->flags |= CODEC_FLAG_QSCALE;
  eccx->flags |= CODEC_FLAG_EMU_EDGE;

  eccx->mb_decision = FF_MB_DECISION_SIMPLE;

  switch(video){
  case H263:
    break;
  case H263P:
    eccx->flags |= CODEC_FLAG_H263P_SLICE_STRUCT;
    break;
  case H264:
    av_dict_set(&options, "vprofile", "baseline", 0);
    eccx->flags2 = CODEC_FLAG2_FASTPSKIP;
    eccx->profile = FF_PROFILE_H264_BASELINE;
    eccx->level = 13;
    break;
  }
Run Code Online (Sandbox Code Playgroud)

执行此程序时,我从libx264得到以下输出:

[libx264 @ 0x10fad60] using …
Run Code Online (Sandbox Code Playgroud)

c++ x264 libavcodec libav libx264

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

适用于Android的ffmpeg:霓虹灯构建具有文本重定位

嗨,我成功地构建了包括arm-v7a霓虹灯支持在内的ffmpeg库,但是当我尝试在棉花糖设备上运行这些库时,出现以下错误:

01-08 23:42:02.350: E/AndroidRuntime(10144): java.lang.UnsatisfiedLinkError:
 dlopen failed: /data/app/com.example.demo-1/lib/arm/libffmpeg-neon.so: has text relocations
Run Code Online (Sandbox Code Playgroud)

当我使用非霓虹灯建筑时,它可以正常工作。

因此,我在Google上搜索了一下,发现这可能是相应C / C ++代码中的错误,但是另一方面,当使用NDK v。10e重建时,应该将其修复。这就是我所做的。但是我仍然得到这些文本重定位:

~/Projekte/AndroidFFmpeg$ /usr/Android/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf -a library/src/main/jniLibs/armeabi-v7a/libffmpeg-neon.so  | grep TEXTREL
 0x00000016 (TEXTREL)                    0x0
 0x0000001e (FLAGS)                      SYMBOLIC TEXTREL
Run Code Online (Sandbox Code Playgroud)

这个问题似乎很相关,但没有帮助:

Android中的“ ffmpeg具有文本重定位”错误

libavcodec.so:具有文本重定位

我该如何解决?

c++ android ffmpeg neon android-ndk

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

React&Material-UI:使用TypeScript在createStyles()中未定义主题

我正在用TypeScript学习React,并在前端使用Material UI框架。我尝试使媒体查询正常工作,但出现错误:

Uncaught TypeError:无法读取样式未定义的属性“ up”(webpack-internal:///../app/components/navigation/Toolbar/index.tsx:59)

这是相应的代码:

const styles = ({breakpoints}: Theme) => createStyles( {
    grow: {
        flexGrow: 1
    },
    menuButton: {
        marginLeft: -12,
        marginRight: 20
    },
    sectionDesktop: {
        display: 'none',
        [breakpoints.up('md')]: {
            display: 'flex'
        }
    },
    sectionMobile: {
        display: 'flex'
    },
})
Run Code Online (Sandbox Code Playgroud)

样式通过以下方式传递给组件:

export default withStyles(styles)(Toolbar)
Run Code Online (Sandbox Code Playgroud)

我读到不需要创建自定义主题,因为默认主题将自动传递给函数。但是,主题的breakpoints属性未定义,导致出现空白页。

谢谢你的帮助

编辑

这是该组件的代码,如果没有其他任何组件,仍然会产生问题。

import * as React from 'react'
import {
    Theme
} from '@material-ui/core'
import {
    createStyles,
    WithStyles,
    withStyles
} from '@material-ui/styles'
// import Drawer from '../Drawer'

const styles = ({breakpoints}: Theme) …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs material-ui

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

std :: vector如何将对象复制到其内部存储

我有以下问题:

void add(){
  cRow Row();
  Row.add("Column", "Value");
  std::vector<cRow> mRows;
  mRows.push_back(Row);
}

cRow::cRow(): mCol(NULL), mVal(NULL) {
}

cRow::add(const char* Col, const char* Val){
  mCol = strdup(Col);
  mVal = strdup(Val);
}

cRow::~cRow(){
  free(mCol);
  free(mVal);
}
Run Code Online (Sandbox Code Playgroud)

将局部变量Row添加到向量后,将为该行调用析构函数并释放字符串.

显然,现在也释放了向量中存储行的字符串的指针.离开本地范围后对行的任何访问都将导致段错误.

行的转储看起来像这样的2个调用:

| (null) | (null)  |
-----------------------------------------------------
| (null)| (null) |
| LastContainerUpdatePropagation| 1307967498 |
------------------------ END ------------------------
Run Code Online (Sandbox Code Playgroud)

3次通话后:

| (null) | (null)  |
-----------------------------------------------------
| (null)| (null) |
| (null)| (null) |
| LastSystemUpdatePropagation| 1307967498 |
------------------------ END ------------------------
Run Code Online (Sandbox Code Playgroud)

并且在完全离开范围而不添加新行之后,每一行都被释放.

那么,现在我的问题是:std:vector如何复制对象?我需要做些什么来保持指向字符串的指针或将它们复制到另一个空间?

非常感谢你!

c++ free pointers stdvector

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

Android DialogFragment getActivity() 为 null

我正在尝试创建一个对话框,在用户注销之前向用户显示倒计时。超时是从另一个活动设置的。

我写了以下代码:

import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.os.Bundle;

public class SessionInactivityDialog extends DialogFragment {

    public void setInactivityTimeout(long timeout) {
        Resources res = getActivity().getResources();
        String text = String.format(res.getString(R.string.iminent_logout_text), (timeout / 1000));
        ((AlertDialog)getDialog()).setMessage(text);
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        builder.setTitle(R.string.iminent_logout);
        builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int id) {
                SessionActivity activity = (SessionActivity)getActivity();
                activity.resetTimer();
            }
        });

     return builder.create();
    }

}
Run Code Online (Sandbox Code Playgroud)

使用以下几行调用该对话框:

private void showIminentLogoutDialog(long timeout) {
    mInactivityDialog.show(getFragmentManager(), …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-alertdialog dialogfragment

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