小编Sam*_*ipp的帖子

使用包含图像的Retrofit 2.0 POST多部分表单数据

我正在尝试使用Retrofit 2.0对服务器进行HTTP POST

MediaType MEDIA_TYPE_TEXT = MediaType.parse("text/plain");
MediaType MEDIA_TYPE_IMAGE = MediaType.parse("image/*");

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    imageBitmap.compress(Bitmap.CompressFormat.JPEG,90,byteArrayOutputStream);
profilePictureByte = byteArrayOutputStream.toByteArray();

Call<APIResults> call = ServiceAPI.updateProfile(
        RequestBody.create(MEDIA_TYPE_TEXT, emailString),
        RequestBody.create(MEDIA_TYPE_IMAGE, profilePictureByte));

call.enqueue();
Run Code Online (Sandbox Code Playgroud)

服务器返回错误,指出文件无效.

这很奇怪,因为我试图在iOS上使用相同的格式上传相同的文件(使用其他库),但它上传成功.

我想知道使用Retrofit 2.0上传图像的正确方法是什么?

在上传之前我应该​​先将它保存到磁盘吗?

谢谢!

PS:我已经将改造用于其他不包含图像的Multipart请求,并且已成功完成.问题是当我试图在主体中包含一个字节时.

android androidhttpclient retrofit retrofit2

131
推荐指数
7
解决办法
17万
查看次数

如何以编程方式更改ActionBar中的MenuItem图标

如何以编程方式更改ActionBar中的MenuItem图标?我试着用

MenuItem menuItem =(MenuItem)findViewById(R.id.action_settings); menuItem.setIcon(getResources().getDrawable(R.drawable.ic_launcher))

但它不起作用.这是我的代码:

主要活动

package com.test;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MenuItem menuItem = (MenuItem)findViewById(R.id.action_settings);
                menuItem.setIcon(getResources().getDrawable(R.drawable.ic_launcher));
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, …
Run Code Online (Sandbox Code Playgroud)

java android

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

为什么JavaFX不包含在Ubuntu Wily(15.10)的OpenJDK 8中?

我今天已经下载了OpenJDK 8 sudo apt-get install openjdk-8-jdk,似乎JavaFX不包含在其中.

> java -version
openjdk version "1.8.0_66-internal"
OpenJDK Runtime Environment (build 1.8.0_66-internal-b17)
OpenJDK Server VM (build 25.66-b17, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我也在最新的Eclipse(Eclipse Mars)中安装了E(fx)clipse,但我仍然得到消息javafx无法解析.

java eclipse ubuntu javafx

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

警告Google Play开发者政策违规:需要采取措施

我最近收到了许多来自谷歌的邮件,用于我的许多应用程序.

电子邮件内容是:

您好Google Play开发者,

我们的记录显示,您的应用程序XXXX(包名为com.XXXX.XXXXXXXXXX)目前违反了有关个人和敏感信息的用户数据政策.

政策问题:Google Play要求开发者在应用请求或处理敏感用户或设备信息时提供有效的隐私权政策.您的应用请求敏感权限(例如相机,麦克风,帐户,联系人或电话)或用户数据,但不包含有效的隐私权政策.

需要采取的措施:在应用的商品详情页面和应用内添加指向有效隐私权政策的链接.您可以在我们的帮助中心找到更多信息.

或者,您可以通过删除对敏感权限或用户数据的任何请求来选择退出此要求.

如果您的目录中有其他应用程序,请确保它们符合我们的Prominent Disclosure要求.

请在2017年3月15日之前解决此问题,否则将采取管理措施来限制应用的可见性,包括从Play商店中删除.感谢您帮助我们为Google Play用户提供清晰透明的体验.

问候,

Google Play团队

应用程序的清单权限如下所示:

1-)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Run Code Online (Sandbox Code Playgroud)
2-)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE". …
Run Code Online (Sandbox Code Playgroud)

policy android google-play privacy-policy

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

如何在Tab布局中设置Tab宽度?

我正在尝试创建一个tab layout有两个tabs.当我在小型移动设备上运行应用程序时tab layout看起来不错,但是当我在其上运行相同的应用程序时Tablet,显示如下.

在平板电脑上看起来像这样

我希望每个标签占据整个空间,两端都没有任何间隙.我这样创造了tab layout......

private void drawTabLayout() {
    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.addTab(tabLayout.newTab().setText("Imprint") );
    tabLayout.addTab(tabLayout.newTab().setText("Legal"));
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setTabMode(TabLayout.MODE_FIXED);
    tabLayout.setSelectedTabIndicatorHeight(10);
    tabLayout.setBackgroundColor(Color.WHITE);
}
Run Code Online (Sandbox Code Playgroud)

我搜索了很多网站但找不到合适的答案.提前致谢.

java android android-tablayout

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

JavaScript中的BigDecimal

我是JavaScript的新手(我来自Java背景),我正在尝试用少量资金进行一些财务计算.

我原来的目的是:

<script type="text/javascript">
    var normBase = ("[price]").replace("$", "");
    var salesBase = ("[saleprice]").replace("$", "");
    var base;
    if (salesBase != 0) {
        base = salesBase;
    } else {
        base = normBase;
    }
    var per5  = (base - (base * 0.05));
    var per7  = (base - (base * 0.07));
    var per10 = (base - (base * 0.10));
    var per15 = (base - (base * 0.15));
    document.write
        (
        '5% Off: $'  + (Math.ceil(per5  * 100) / 100).toFixed(2) + '<br/>' +
        '7% Off: $' …
Run Code Online (Sandbox Code Playgroud)

javascript floating-point bigdecimal

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

使用passportjs重置/更改nodejs中的密码

我在nodejs中使用passportjs来创建登录系统.一切都很好,但我不知道如何在忘记密码或想要更改密码时重置用户密码.

MongoDB中的用户模型

var UserSchema = new Schema({
    email: String,
    username: String,
    provider: String,
    hashed_password: String,
    salt: String,
});
Run Code Online (Sandbox Code Playgroud)

提前致谢!

node.js reset-password passport.js

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

在android中添加1小时到当前时间

可能重复:
如何将时间增加1小时

我使用此代码来获取当前日期和时间

SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd:HH:mm");
String currentDateandTime = sdf.format(new Date());
System.out.println("current time date" + currentDateandTime);
Run Code Online (Sandbox Code Playgroud)

现在我想加1小时.我搜索但是没有得到我想要的答案.现在变得像这样

current time date2012:12:13:12:05
Run Code Online (Sandbox Code Playgroud)

我希望像2012:12:13:13:05那样用24小时格式回答.

java android calendar

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

可以将文件符号链接到网址吗?

我们目前面临一个挑战,理想的解决方案是将文件符号链接到网址...

image.jpg - > http://www.host.com/images/image.jpg

这可能吗?

谢谢!

杰夫

linux

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

如何禁用在ng2-dragula上拖动一些元素

我想在顶部显示名称组并取消它上面的拖动事件.如何禁用移动某个元素,如果该组名称在顶部.我的代码是:

dragulaService.drag.subscribe((value) => {
    console.log(`drag: ${value[0]}`);
});
Run Code Online (Sandbox Code Playgroud)

我的模板:

<div class='wrapper'>
  <div class='container' *ngFor='let group of groups' [dragula]='"nested-bag"'>
     <div class="center-block">Table Number : {{group.name}}</div>
    <div *ngFor='let item of group.items' [innerHtml]='item.name'></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

ng2-dragula angular

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