小编Ric*_*ard的帖子

图像方向 - Android

在过去一个月左右的时间里,我一直在努力解决这个问题.每当我认为我已经修复它似乎以某种形式回来.

这是旧的Android"图像旋转90度"的错误.我已经在这里阅读了无数的帖子(StackOverFlow)以及尝试了很多方法,但似乎无法修复它.

我仍然得到错误旋转的图像.

在我的应用程序中,用户选择他/她的个人资料图片,然后将其设置为ImageView.图像选自Phones Gallery

两天前,我实施了以下代码,这适用于我在手机上测试的所有图像.然而,当我的一位Beta测试者试用它时,他的图像再次被旋转.他把图像发给我测试,但他们在我的手机上显示正常.因此,为什么我越来越沮丧.

这是我用来获取图像方向的方法:

// Gets an Images Orientation
public static int getOrientationEXIF(Context context, Uri uri) {

    int orientation = 0;

    try {

        ExifInterface exif = new ExifInterface(uri.getPath());

        orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);

        switch (orientation) {

            case ExifInterface.ORIENTATION_ROTATE_90:
                orientation = 90;
                return orientation;

            case ExifInterface.ORIENTATION_ROTATE_180:
                orientation = 180;
                return orientation;

        }

    } catch (IOException e) {
        e.printStackTrace();
    }

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

然后我使用此方法获得旋转的位图:

// Rotate a Bitmap
public static Bitmap rotate(float rotationValue, String filePath) {
    Bitmap original= BitmapFactory.decodeFile(filePath);

    int …
Run Code Online (Sandbox Code Playgroud)

java android exif image bitmap

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

CMake 和 Window .Lib 文件

我一直在努力在 Stackoverflow 上寻找这个问题的答案,至少是我能理解的。我最近购买了 CLion,并希望将 Visual Studio 中的一个旧项目移植到其中。但我不知道如何将 .lib 文件链接或添加到我的项目中。我需要链接 Xinput 和 DSound。

在 Visual Studio 中,我刚刚添加了标头,然后将它们添加到文件的顶部

#pragma comment(lib, "XInput.lib")

#pragma comment(lib, "Dsound.lib")

我完全不知道如何使用 CMake 链接到这些库,因为我是一个完全的初学者。

任何帮助将不胜感激

这是我当前的 CMake 文件

cmake_minimum_required(VERSION 3.3)
project("Handmade_Hero")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)

INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")

add_executable("Handmade_Hero" ${SOURCE_FILES})
Run Code Online (Sandbox Code Playgroud)

更新

cmake_minimum_required(VERSION 3.3)
project(Handmade_Hero)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)

INCLUDE_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}")

add_executable(Handmade_Hero ${SOURCE_FILES})

set( LIBS XInput DSound )
target_link_libraries(Handmade_Hero ${LIBS} )
Run Code Online (Sandbox Code Playgroud)

我的编译器现在抛出以下错误:

PATH\ClionProjects\Handmade-Hero\main.cpp:3:20: fatal error: Xinput.h: No such file or directory
 #include <Xinput.h>
                    ^
compilation terminated.
mingw32-make.exe[3]: *** [CMakeFiles/Handmade_Hero.dir/main.cpp.obj] Error 1 …
Run Code Online (Sandbox Code Playgroud)

c++ windows cmake

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

MongoDB Scala驱动程序-呈现BSON文档

当前,我们正在使用一种类型安全的查询语言,该自定义DSL允许我们轻松编写数据库查询,这些查询将被解释并转换为Mongo查询。

我们最近从Casbah换成了新的Mongo Scala驱动程序,并改写了我们的翻译。但是,在处理可选值时遇到一些问题。

这是一个示例查询:

dao.headOption(Order.id === orderId.some)
Run Code Online (Sandbox Code Playgroud)

订单对象上存储的类型是一个选项,因此我们也将提供的ID提升为一个选项。但是,每当我尝试以以下方式呈现生成的查询以用于调试以及测试用例时:

import org.mongodb.scala.bson.{BsonDocument, codecs}

query.toBsonDocument(BsonDocument.getClass, codecs.DEFAULT_CODEC_REGISTRY)
Run Code Online (Sandbox Code Playgroud)

最终引发以下异常:

Can't find a codec for class scala.Some.
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class scala.Some.
Run Code Online (Sandbox Code Playgroud)

我不确定如何纠正此问题,或者不确定是否需要为Option实现我自己的编解码器,并且如果我这样做,我也不知道该怎么做。

任何帮助将不胜感激。先感谢您

更新资料

我已经看到我可以尝试实现编解码器接口,如下所示:

http://mongodb.github.io/mongo-java-driver/3.0/bson/codecs/

我是否需要为Option的每种可能的子类型实现它?

示例Option [Int],Option [UUID],Option [List [String]]等。

scala codec mongodb bson casbah

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

尝试将工具栏包含到使用 NavDrawer 模板的应用程序中

我正在尝试将旧应用程序移至新材料设计指南。我以前使用导航抽屉模板来创建主活动。但是,我在尝试将工具栏实现到主活动时遇到了一些大问题。我不断收到 NullPointer 异常。

我正在创建一个这样的工具栏 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_main"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/blue" >
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

之后,我尝试使用 include 命令将其添加到我的主布局中:

<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="com.medinfo.main.MainActivity" >

    <include layout="@layout/toolbar_database_edit" />

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

    <fragment
        android:id="@+id/navigation_drawer"
        android:name="com.medinfo.fragments.NavigationDrawerFragment"
        android:layout_width="@dimen/navigation_drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        tools:layout="@layout/fragment_navigation_drawer" />

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

在我的 activity_main 中,我正在执行以下操作:当我调用 setSupportActionBar 或调用 Setup NavDrawer 时发生 NPE。

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

        Toolbar toolbar = (Toolbar) findViewById(R.layout.toolbar_database_edit);
        setSupportActionBar(toolbar);

        mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
        mTitle = getTitle();

        // Set up the drawer. …
Run Code Online (Sandbox Code Playgroud)

java android material-design android-toolbar

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