小编And*_*cus的帖子

使用AppCompat的Android Material Design Datepicker

我正在尝试使用AppCompat将新的Android 5.0 Material Design Datepicker添加到我的5.0之前的应用程序中.我已经添加

compile "com.android.support:appcompat-v7:21.0.0"
Run Code Online (Sandbox Code Playgroud)

到我的build.gradle文件并将我的主题更新为:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但Datepicker仍然如下所示:
旧的datepicker
而不是这样的:
材料设计datepicker

任何人都可以告诉我如何让新的datepicker在5.0之前的设备上运行吗?

提前致谢.

android datepicker android-appcompat material-design

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

Glide:onError回调

我正在从毕加索转向格莱德.一切正常,除了我找不到一个方法来获得错误回调.我想检索一个Bitmap,传递它并从中生成一个Android Palette.此外,虽然可以将errorDrawable提供给加载调用,但在onResourceReady使用时它不会显示SimpleTarget.

在毕加索我做到了这样:

target = new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                //handle Bitmap, generate Palette etc. 
            }

            @Override
            public void onBitmapFailed(final Drawable errorDrawable) {
                // use errorDrawable to generate Palette
            }

            @Override
            public void onPrepareLoad(final Drawable placeHolderDrawable) {
            }
        };
        int width =  (int) DisplayUnitsConverter.dpToPx(this, 120);
        int height =  (int) DisplayUnitsConverter.dpToPx(this, 40);
        Picasso.with(this).load(config.getPathToLogo()).resize(width, height).error(errorDrawableId).into(target);
Run Code Online (Sandbox Code Playgroud)

我的滑动代码如下所示:

Glide.with(context)
    .load(config.getPathToLogo())
    .asBitmap()
    .into(new SimpleTarget<Bitmap>(width, height) {
         @Override
         public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
             //handle …
Run Code Online (Sandbox Code Playgroud)

android android-glide

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

Java Map to JSON to Typescript Map

在我的服务器端,我有一个包含HashMap的Java对象.我想将它序列化为JSON,将其返回到我的Angular2客户端并将其用作那里的Map/Dictionary.

这是班级:

public class FileUploadResult {
    String timestamp;
    String message;
    String status;
    HashMap<String, String> parameters;

    public FileUploadResult(String status, String message, String timestamp, HashMap parameters) {
        this.status = status;
        this.message = message;
        this.timestamp = timestamp;
        this.parameters = parameters;
    }
Run Code Online (Sandbox Code Playgroud)

}

这是我在客户端收到的JSON:

{"timestamp":"","message":"Test","status":"1","parameters":{"myKey":"Value","mySecondKey":"Another Value"}}
Run Code Online (Sandbox Code Playgroud)

这是我收到的Angular2 http调用:

this.http.post(this.uploadURL, formData).map((res:Response) => res.json() as FileUploadResult).catch(this.handleError); 
Run Code Online (Sandbox Code Playgroud)

客户端上的FileUploadResult如下所示:

export class FileUploadResult {
    status: string;
    timestamp: string;
    message: string;
    parameters: Map<string, string>;

    constructor() {
        this.parameters = new Map<string, string>();
    }

    addParameter(key: string, value: string) {
        this.parameters.set(key, value);
    } …
Run Code Online (Sandbox Code Playgroud)

json typescript angular

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

Android Toggle Button自定义大小/填充/间距

我正在尝试为Android Toggle Buttons创建自定义样式.更改颜色和文本没有问题,但我无法更改大小/填充/间距或其他任何内容,使它们默认显示为不必要的大.我将wrap_content和padding以及margin的高度设置为0,但是按钮的大小仍然与默认的Toggle Button一样大.

你是否有人知道我要更改哪些参数以删除按钮的文本和边框之间不必要的间距?

这是我想要实现的图像的链接.从左到右:默认ToggleButton,我当前的ToggleButton和我想要的ToggleButton.

这是我的代码(因为我动态添加这些按钮,没有xml)

ToggleButton button = new ToggleButton(getContext());
button.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
button.setId(IDCreator.getID());
button.setText(tag);
button.setTextOff(tag);
button.setTextOn(tag);
button.setGravity(Gravity.LEFT);
button.setPadding(0, 0, 0, 0);
button.setBackground(getContext().getResources().getDrawable(R.drawable.toggle_selector));
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.亲切的问候.

编辑:图像和代码

java layout android togglebutton

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

使用 Google Books API 的高质量图书封面

根据 Google Books API 文档,每卷产生 6 个不同的图像链接(smallThumbnail、thumbnail、small、medium、large、extraLarge)。

不幸的是,对于我尝试过的所有查询(并且我已经尝试了很多),都smallThumbnailthumbnail返回了。(示例查询

另外,除了相当小之外,这两张图片的右下角还有这个小假狗耳朵

缩略图示例

他们是否弃用了高质量的图像链接?还有其他方法来获取这些图像吗?我尝试过的其他 API 要么已弃用 (Goodreads),要么不太广泛 (Open Library)

google-books-api

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

Android 上的 MapBox:在应用程序处于后台时接收位置更新

我正在尝试使用 MapBox Android SDK 实现一个简单的位置跟踪器。即使应用程序在后台运行,我也希望持续跟踪。在 MapBox 示例以及 API 文档中,声明必须在活动的 onPause 中调用 MapView.onPause()。但是,如果调用此方法,跟踪将停止并且我不会收到位置更新。

这是我的 onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    MapView mapView = (MapView) findViewById(R.id.map);
    mapView.onCreate(savedInstanceState);

    mapView.getMapAsync(new OnMapReadyCallback() {
        @Override
        public void onMapReady(MapboxMap mapboxMap) {
            mapbox = mapboxMap;
            mapbox.setMyLocationEnabled(true);
            mapbox.getMyLocation();
            mapbox.setOnMyLocationChangeListener(MainActivity.this);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

这是 onLocationChangedListener

@Override
public void onMyLocationChange(@Nullable Location location) {
    if(location != null) {
        if(locationList.size() == 0 || !areEqual(location, locationList.get(locationList.size() - 1))){
            locationList.add(location);
            location.getSpeed();
            computeDistance();
            addPolyline();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果应用程序在后台,是否有推荐的方法来接收 MapBox 位置更新?是否有自定义服务实现或类似的东西?如果没有,只调用 MapView.onDestory() 就足够了吗?谢谢

android mapbox

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

Crypto-JS哈希函数返回对象

我正在尝试在react / typescript项目中使用crypto-js库对字符串进行哈希处理。我正在使用crypto-js 3.1.9和@ types / crypto-js 3.1.33。

这是一些代码:

import CryptoJS = require("crypto-js");

export const hashString= (str: string): string => {
  const hash = CryptoJS.MD5(str);
  return hash;
}
Run Code Online (Sandbox Code Playgroud)

我希望hash是crypto-js实现文档中指定的字符串类型。但是该函数返回一个对象,其中包含一个字数组。

我也试过打电话

hash.toString(CryptoJS.enc.Hex) 
Run Code Online (Sandbox Code Playgroud)

但这没有用,因为打字稿还假定hash它将是一个字符串。因此,toString不允许使用参数化函数。

我究竟做错了什么?

javascript cryptojs typescript

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

在XML中使用材质图标

我想使用Google提供的新素材图标.我觉得单独下载每个图标有点麻烦.有没有办法做这样的事情:

<ImageButton
  android:src="@android:Icon.Material.IconName"
  .../>
Run Code Online (Sandbox Code Playgroud)

如果没有,最简单的方法是在我的项目中包含多个图标?干杯.

android material-design

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