小编edr*_*ian的帖子

毕加索从文件系统加载图像

我可以使用Picasso库从文件系统加载图像吗?

startActivityForResult用来让用户从他的图库中选择一张照片,然后想要显示所选图像.

我已经有了工作代码来获取图像文件系统Uri,但无法使该Picasso.load()方法工作.

android picasso

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

使用Picasso和自定义Transform对象加载大图像

当从Android Gallery(使用startActivityForResult)加载"大"图像(> 1.5MB)时,我使用Picasso获得Out Of Memory异常.

我正在使用自定义Target对象,因为我需要在Bitmap准备好时对其进行预处理,并且我还使用自定义Transform对象来缩放Bitmap.

问题是public Bitmap transform(Bitmap source)我的Transform对象上的方法永远不会被调用,因为Out Of Memory Exception,所以我没有机会重新采样图像.

但是,如果我使用该.resize(maxWidth, maxHeight)方法,那么它加载图像确定.我认为Transform对象也是出于这个目的,但似乎在调整大小后调用transform方法,如果我不调用resize,那么它将以Out of Memory结束.

问题是,使用resize我需要指定宽度和高度,但我需要缩放并保持纵横比.

考虑到图像将从用户图库中选择,因此它们可以更大或更小,纵向,平方或横向等,因此我需要自己的Transformation对象来执行需要我的应用程序的逻辑.

android picasso

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

FragmentManager popBackStack不会删除片段

我正在使用Fragments实现菜单导航.所以我从Home开始,然后用户可以导航到每个部分的不同部分和细节.

当用户更改部分时,我会在fragmentmanager backstack上调用pop,直到我到达Home,然后加载新部分.

这一切都按预期工作.但是我遇到了这个问题:

  1. 在onResume()上加载一个调用setHasOptionsMenu(true)的部分
  2. 加载另一个部分(旧部分,它是为了摆脱堆栈).我觉得没问题.没有菜单显示
  3. 离开应用程序(例如,转到Android Laucher活动)然后当我返回时,我看到正确的部分,但它显示了旧片段的菜单.

我已经迭代了backstack并打印了每个片段,并且它不是菜单中的片段.

我在onResume()方法上放了一个调试标记(setHasOptionsMenu(true)标记的地方),它确实进入了这里,所以片段它仍然在某处.

我想知道我做错了什么,我怎么能解决它,谢谢

更新:

我正在使用此代码加载新片段

fm.beginTransaction()
    .add(container, sectionFragment.getFragment())
    .addToBackStack(sectionFragment.getFragmentName())
    .commit();
Run Code Online (Sandbox Code Playgroud)

并删除:

private void clearStack(){
int count = fm.getBackStackEntryCount();
    while(count > 1){
        fm.popBackStack();
        count--;
    }
}
Run Code Online (Sandbox Code Playgroud)

注1:我正在使用add而不是替换,因为当我从详细信息部分导航回来时,我不想丢失我的片段的状态.当我加载另一个不同的部分,然后我调用clearStack将堆栈弹出到1,然后加载新的片段.最后,我调用executePendingTransactions()来完成从事务中删除片段.

注2:我看到它正在我的片段onDestroy()方法上进入,所以它被摧毁了.但我不知道为什么在Main活动恢复时会再次调用它.

android android-fragments fragmentmanager android-nested-fragment

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

Yii2 Rest - 自定义动作和OPTIONS方法

我在UsersController类中执行以下操作"/ login"路由操作时遇到问题

public function actionLogin(){
        $data = Yii::$app->getRequest()->getBodyParams();
        $model = new Usuario();

        //Validamos que se hayan recibido los campos
        if(empty($data['email']) || empty($data['password'])){
            throw new \yii\web\BadRequestHttpException("Debe ingresar email y password");
        }

        //Validamos usuario y contraseña
        $usuario = $model->findByUsername($data['email']);
        if(empty($usuario) || !$usuario->validatePassword($data['password'])){
            throw new \yii\web\UnauthorizedHttpException("Usuario y/o contraseña incorrectos");
        }
        return $usuario;
    }
Run Code Online (Sandbox Code Playgroud)

情况是我正在使用POST方法执行登录,并且我从不同的域调用此路由,因此前端库首先尝试使用OPTIONS方法调用/ login route以检查是否允许调用/使用POST登录..

问题是yii2 rest ActiveController的内置功能仅适用于/ users和/ users/{id}

如果我通过动作verbFilter手动添加此/登录路由以在POST和OPTIONS中都可用,则yii尝试使用OPTIONS请求实际调用登录操作.我的意思是,它正在尝试登录.当然它不能,因为它不发送电子邮件和密码字段,但我可以在日志文件中看到错误.

所以,我的问题是......有没有办法正确配置这个"自定义"路由动作并使OPTIONS执行透明?因为我期望在使用OPTIONS调用它时不会执行登录操作,而是直接返回OPTIONS允许的方法头.

更新信息:添加了URL管理器规则

'urlManager' => [
        'enablePrettyUrl' => true,
        'enableStrictParsing' => true,
        'showScriptName' => true,
        'rules' => [
            [
                'class' => 'yii\rest\UrlRule', …
Run Code Online (Sandbox Code Playgroud)

php rest yii2

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

Phonegap - 忽略Android上的字体大小显示设置

通过配置更改字体大小显示设置时,我遇到了一些Android设备的问题.

在网络浏览器中,我的应用很简单,忽略了这一点 对于其他一些手机也是如此.

但是对于某些特定的手机(如摩托罗拉G或X),更改此配置也会影响我的Phonegap应用程序.

我不知道如何避免这种情况使应用程序看起来一致

android cordova ionic-framework

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

yii2 - Kartik文件输入 - 更新

情况就是这样:我是Yii2的新手,想在ActiveForm中使用一些文件上传器小部件..到目前为止,我发现了这个非常好的一个:\ kartik\widget\FileInput

使用此小部件,我可以管理文件上传,然后,当进入编辑模式时,使用oportunite显示上一个上传的图像以替换它.

问题是,如果我在没有修改图像的情况下按下表单的"更新"按钮,则表示图像"不能为空",因为我在模型中设置了"必需"规则.

php file-upload yii2

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

获取布尔值为true或false,而不是1或0

我正在使用MySql数据库,因此我在db模式中将列类型定义为Tinyint(1).

在我的ActiveRecord中,我设置了布尔验证器.保存逻辑按预期工作.

我现在想要的是,当我调用Yii2 REST服务时,返回布尔字段为true或false而不是1或0,因为在客户端,框架带有严格的比较(===),1与true不同.

当然,我可以在发送内容之前手动覆盖该值,或者在将其加载到模型之前在客户端上覆盖该值,但我希望有一个更清晰的解决方案.

yii2 yii2-model

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

无法在Android上运行Ionic:类未找到异常IonicKeyboard

构建并运行Android应用程序后,它关闭.

查看Eclipse logcat,它显示了一个未找到的类com.ionic.keyboard.IonicKeyboard

我是Ionic的新手,我不知道如何让它起作用.提前致谢

ionic-framework

5
推荐指数
2
解决办法
4312
查看次数

Moment.js - "通过全局范围访问时刻"警告消息

我最近下载了最后一个版本的moment.js,它在尝试调用时开始显示以下消息,例如, moment().add(1, 'day');

"Deprecation warning: Accessing Moment through the global scope is deprecated, and will be removed in an upcoming release."
Run Code Online (Sandbox Code Playgroud)

什么是最好的方式来称呼时刻?

更新:找出问题所在

问题出现了,因为我在我的项目中有requirejs,而且我试图警告我,我应该使用momentjs作为模块依赖.

以下代码是从momentjs v2.9.0中提取的

// CommonJS module is defined
if (hasModule) {
    module.exports = moment;
} else if (typeof define === 'function' && define.amd) {
    define('moment', function (require, exports, module) {
        if (module.config && module.config() && module.config().noGlobal === true) {
            // release the global variable
            globalScope.moment = oldGlobalMoment;
        }

        return moment;
    });
    makeGlobal(true);
} else {
    makeGlobal();
} …
Run Code Online (Sandbox Code Playgroud)

javascript momentjs

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