小编sin*_*nek的帖子

通过void*而不是使用reinterpret_cast进行转换

我正在读一本书而且我发现reinterpret_cast不应该直接使用,而是将其与无效*结合使用static_cast:

T1 * p1=...
void *pv=p1;
T2 * p2= static_cast<T2*>(pv);
Run Code Online (Sandbox Code Playgroud)

代替:

T1 * p1=...
T2 * p2= reinterpret_cast<T2*>(p1);
Run Code Online (Sandbox Code Playgroud)

但是,我找不到解释为什么这比直接演员更好.如果有人能给我一个解释或指出我的答案,我将非常感激.

提前致谢

ps我知道用的是什么reinterpret_cast,但我从未见过以这种方式使用它

c++ casting void-pointers language-lawyer reinterpret-cast

37
推荐指数
2
解决办法
5697
查看次数

使用dagger 2的CustomView依赖注入(在活动范围内)

我的问题与类似.

例如,我有一个LiveData实现:

public class CustomLiveData extends LiveData<SomeEvent> {

    @Inject
    public CustomLiveData(@ActivityContext Context context) {
        //....
    }

}
Run Code Online (Sandbox Code Playgroud)

我想要注入自定义视图:

public class CustomView extends View {
   @Inject
   SomeApplicationProvider anyProvider;

   @Inject
   CustomLiveData dataProvider; 
   // Getting @com.di.qualifiers.ActivityContext  android.content.Context cannot be provided without an @Provides-annotated method. 
   // @com.di.qualifiers.ActivityContext android.content.Context is injected at com.repositories.CustomLiveData.<init>(context)
   // com.repositories.CustomLiveData is injected at com.ui.CustomView.dataProvider com.ui.CustomView is injected at 
   // com.di.ApplicationComponent.inject(view)

   public CustomView(Context context) { this(context, null); }
   public CustomView(Context AttributeSet attrs) { 
      super(context, attrs);

      // Works …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection dagger dagger-2

16
推荐指数
1
解决办法
6088
查看次数

如何获得给定字体的ascender/descender和x height

我需要得到一个ascender/descenderx-height ..

通过使用以下代码,我可以找到下降器和总高度:

descender_height = paint.descent();
total_height = descender_height - paint.ascent();
//ascender = ?; is this always equal to descender height?
//x_height = ?; total_height - 2*descender_height ?
Run Code Online (Sandbox Code Playgroud)

谢谢

fonts android fontmetrics

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

持续FPS的Android游戏?

我正在实现一个具有恒定FPS的游戏循环.我想25-30 FPS应该足够了.您自己的经验中的任何想法?我甚至应该限制FPS吗?

android frame-rate game-loop

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

在 Visual Studio (C++) 中存储调试会话(断点/书签)

当我调试某些东西时,我想存储与我目前正在处理的错误 * 相关的断点/书签。因此,当我切换到另一个 bug* 时,我不希望每次都手动禁用与以前的 bug 相关的断点/书签,并为新的 bug 创建另一个。可以标记断点或书签会很棒。

到目前为止,我通过为我正在处理的每个错误存储 .suo 文件来克服上述问题*,但我发现很难/尴尬地处理多个 .suo 文件......

您如何处理上述问题,或者是否有人知道任何 VS 附加组件或一些执行类似操作的工具?

谢谢!

*错误 - 错误/问题/current_project/任何

debugging visual-studio visual-c++

6
推荐指数
0
解决办法
543
查看次数

警报对话框按钮太近

我看到这个东西与警报对话框的按钮接触(它们之间没有空格)。

在此处输入图片说明

无论使用何种主题,都会发生这种情况。代码:

builder.setTitle(R.string.sign_in_title);
builder.setCancelable(false)
        .setPositiveButton(R.string.sign_in, (dialog, id) -> {
            //Todo
        })
        .setNegativeButton(R.string.cancel, (dialog, id) -> dialog.cancel());
builder.create().show();
Run Code Online (Sandbox Code Playgroud)

应用主题继承:

 <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
Run Code Online (Sandbox Code Playgroud)

我试图用 Alert.Dialog 建立一个最小的项目设置,我看到了同样的事情..

任何想法发生了什么或如何解决它?

编辑:我知道我可以更改警报的主题以产生不同的结果,但这也意味着我的应用程序中不会有统一的按钮(即绿色填充白色文本)

user-interface android themes material-design

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

将抽象类实现为本地类?利弊

出于某种原因,我正在考虑在一个函数(方法)中实现接口作为本地类.

考虑以下:

class A{
public:

    virtual void MethodToOverride() = 0;

};

A * GetPtrToAImplementation(){

    class B : public A {
    public:
        B(){}
        ~B(){}

        void MethodToOverride() {
            //do something
        }
    };

    return static_cast<A *>(new B());
}


int _tmain(int argc, _TCHAR* argv[])
{

    A * aInst = GetPtrToAImplementation();

    aInst->MethodToOverride();

    delete aInst;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是:

  1. 我懒得在单独的文件中实现类(B)
  2. MethodToOverride只是将调用委托给其他类
  3. 其他用户不应看到B类
  4. 无需担心删除aInst,因为智能指针用于实际实现

所以我的问题是我做得对吗?

提前致谢!

c++ class local

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

Android - 注册系统范围的扩展以进行 mime 类型映射

鉴于大多数电子邮件/文件管理器/社交应用程序附件将解析为具有“应用程序/八位字节流”mime 类型的内容 uri 方案,为自定义扩展解决方案注册意图过滤器都不再起作用。剩下的就是让应用程序为所有内容注册一个意图过滤器,这非常烦人:

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="*"
                android:mimeType="application/*"
                android:pathPattern=".*//.xxx" <!-- this wont work since uri may resolve to smth like this "dat=content://0@media/external/file/692 typ="   ->
                android:scheme="content" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

我设置了用于查询扩展的 mimetype 的 API:https ://developer.android.com/reference/android/webkit/MimeTypeMap

是否有 API 或其他方式为我的扩展添加新映射,即“.ext -> application/ext”,我们会在系统级别识别该映射?

file-extension android intentfilter mime-types

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

混合音频文件

我的音频文件很少:

  • f_1 - 长度10秒
  • f_2 - 长度为3秒
  • f_3 - 长度1秒

我需要的是找到一种方法在f_1的特定部分混合(合并)f2和f3(即等于6秒的位置)

我正在看音频示例,但它们对我没什么帮助,所以任何想法\参考\文档可能会有所帮助?

非常感谢!

audio android mixing

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

如何设置自定义字体重量?

就像主题暗示的那样,我想以编程方式更改/设置任意字体的字体粗细.

编辑:我的意思是一般用于绘制字符串的字体.

谢谢你的任何信息.

fonts android

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

在J2ME平台上对String对象数组进行排序

排序字符串数组的最佳(最快)方法是什么(使用Java 1.3).

java sorting string java-me

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