javascript

java

python

c#

android

node.js

reactjs

c++

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

居中位图标记(Google Maps Android API v2)

从自定义位图添加标记时,标记未居中于指定的点。

我正在这样添加它:

    // ID tramo
    final int tramoId = tr.getId();
    // Nodos
    final Nodo[] nodos = tr.getNodos();

    final PolylineOptions p = new PolylineOptions();
    MarkerOptions m = new MarkerOptions();
    // Seteamos posicion de linea y marker
    m.position(semisuma(nodos));
    for (final Nodo n : nodos) {
        p.add(n.getLatLng());
    }
    // Color de linea y marker
    BitmapDescriptor icon = null;
    if (tr.getCapacidad() == 0) {
        p.color(0xFF000000);
        m = null;
    } else if (tr.getCapacidad() - tr.getPlazasOcupadas() == 0) {
        p.color(0xEEFF0000);
        final TextDrawable drawable = new TextDrawable(0, 0xEEFF0000,
                0xFFFFFFFF);
        icon = BitmapDescriptorFactory.fromBitmap(fromDrawable(drawable));
    } else {
        p.color(0xEE00FFFF);
        final TextDrawable drawable = new TextDrawable(0, 0xEE00FFFF,
                0xFFFFFFFF);
        icon = BitmapDescriptorFactory.fromBitmap(fromDrawable(drawable));
    }
    if (m != null) {
        m.title(String.valueOf(tramoId));
        m.icon(icon);
    }
    if (polylinesTramo.get(idTramo) != null) {
        polylinesTramo.get(idTramo).remove();
    }
    if (markersTramo.get(idTramo) != null) {
        markersTramo.get(idTramo).remove();
    }
    polylinesTramo.put(idTramo, map.getMap().addPolyline(p));
    if (marker != null) {
        markersTramo.put(idTramo, map.getMap().addMarker(m));
    }

这是TextDrawable的代码:

package com.cidaut.blueparking.ui;

import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.drawable.Drawable;

public class TextDrawable extends Drawable {

    private final String text;
    private final Paint paint;
    private final int centroX = 13;
    private final int centroY = 16;
    private final float textSize;
    private final float whereToDrawX;
    private final int bgColor;

    public TextDrawable(final int text, final int bgColor, final int textColor) {
        this(String.valueOf(text), bgColor, textColor);
    }

    public TextDrawable(final String text, final int bgColor, final int textColor) {
        this.text = text;
        this.bgColor = bgColor;
        this.paint = new Paint();
        paint.setColor(textColor);
        paint.setTextSize(14f);
        paint.setAntiAlias(true);
        paint.setFakeBoldText(true);
        paint.setStyle(Paint.Style.FILL);
        paint.setTextAlign(Paint.Align.LEFT);
        textSize = paint.measureText(text);
        whereToDrawX = centroX - (textSize / 2);
    }

    @Override
    public void draw(final Canvas canvas) {
        canvas.drawColor(bgColor);
        canvas.drawText(text, whereToDrawX, centroY, paint);
    }

    @Override
    public void setAlpha(final int alpha) {
        paint.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(final ColorFilter cf) {
        paint.setColorFilter(cf);
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }
}

这是fromDrawable方法

protected Bitmap fromDrawable(final Drawable drawable) {
    final Bitmap bitmap = Bitmap.createBitmap(25, 25, Config.ARGB_8888);
    final Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);
    return bitmap;
}

我应该在代码中添加什么以使标记居中放置?

trans by 2020-01-12T10:00:50Z

Android Studio:可绘制文件夹:如何放置多dpi的图像?

嗨,根据android文档,drawable文件夹需要具有多个子目录来存储不同dpi的图像。 但是,在Android Studio中,在drawable文件夹中创建任何子目录都会导致它根本无法检测到任何图像。 另一方面,如果将图像直接放置在drawable文件夹中,则会检测到该图像并将其变为可使用视图R.drawable.ImageName。 在这种情况下,我们如何对同一ImageName使用不同的dpi图像?

trans by 2019-11-18T12:58:53Z

xml drawable-了解Android的<layer-list>

我不了解图层列表的工作方式。 我阅读了一些示例的官方文档,但它对我不起作用,正如预期的那样。 我想要四个正方形,应该用1dp填充,但是没有什么比预期的要好。 这是按比例缩放500%的屏幕截图:

My suares
(错误的颜色无所谓)
如您所见,大小是完全错误的,并且缺少填充。 我试图设置实际值,例如width / height和right / left / top / buttom,以确保android得到我想要的点。

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="0dp" android:left="0dp" android:bottom="0dp" android:right="0dp">
        <shape android:shape="rectangle">
            <size android:width="9dp"
                android:height="9dp"/>
            <solid android:color="#f000"/>
        </shape>
    </item>

    <item android:top="1dp" android:left="1dp" android:bottom="5dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
    <item android:top="1dp" android:left="5dp" android:bottom="5dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>

    <item android:top="5dp" android:left="1dp" android:bottom="1dp" android:right="5dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#0f0"/>
        </shape>
    </item>
    <item android:top="5dp" android:left="5dp" android:bottom="1dp" android:right="1dp">
        <shape android:shape="rectangle">
            <size android:width="3dp"
                android:height="3dp"/>
            <solid android:color="#f00"/>
        </shape>
    </item>
</layer-list>
trans by 2019-11-13T05:03:55Z

android-如何使用RoundedBitmapDrawab

是否有人设法使用RoundedBitmapDrawable? 如果我错了,请纠正我,但据我了解,它会从规则的矩形图像中生成圆形图像。

到目前为止,我尝试过的是

RoundedBitmapDrawable.createRoundedBitmapDrawable(getResources(), BitmapFactory.decodeResource(getResources(), iconResource))

我试图实现的目标:将任何图像转换为圆形图像,并使用ImageView进行显示。

万一我把事情搞混了,我说的都是胡说八道。 是否有可能(或更简单)使用任何新框架来做到这一点? (Android L或新的支持库)

trans by 2019-11-08T21:01:45Z

android-缩放图像以使其背景纵横比保持其纵横比

使用<bitmap />作为背景可绘制XML时,如何使背景图像适合视图但保持其纵横比?<bitmap>android:gravity的值均未达到所需的效果。

trans by 2019-10-16T01:13:51Z

android-使用按钮背景色向我的按钮添加波纹效果?

我创建了一个按钮,我想向该按钮添加波纹效果!

我创建了一个按钮bg XML文件:(bg_btn.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<gradient android:startColor="#FFFFFF" android:endColor="#00FF00" android:angle="270" />
<corners android:radius="3dp" />
<stroke android:width="5px" android:color="#000000" />
</shape>

这是我的涟漪效果文件:(ripple_bg.xml)

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:color="#f816a463"
    tools:targetApi="lollipop">
    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="#f816a463" />
        </shape>
    </item>
</ripple>

这是我的按钮,我想添加波纹效果:

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_centerHorizontal="true"
android:layout_marginTop="173dp"
android:textColor="#fff"
android:background="@drawable/ripple_bg"
android:clickable="true" />

但是添加了涟漪效果后,按钮背景是透明的,并且仅在单击时显示按钮,像这样:

点击之前

点击时

但是我需要按钮背景色和波纹效果,我在Stack Overflow的不同博客中找到了一些这样的代码,但仍然无法正常工作!

trans by 2019-09-22T02:05:06Z

android - 如何从drawable引用样式属性?

我想为我的应用程序提供2个可选主题。 为了做到这一点,我定义了一些属性,如下所示:

 <attr format="color" name="item_background" />

然后,我创建了两个主题,如下所示:

  <style name="ThemeA">
     <item name="item_background">#123456</item>
 </style>

 <style name="ThemeB">
     <item name="item_background">#ABCDEF</item>
 </style>

这种方法效果很好,允许我轻松创建和修改几个主题。 问题是它似乎只能在Views中使用,而不能在Drawables中使用。

例如,引用布局内View的值可以:

 <TextView android:background="?item_background" />

但是在Drawable中做同样的事情并不是:

 <shape android:shape="rectangle">
     <solid android:color="?item_background" />
 </shape>

运行应用程序时出现此错误:

    java.lang.UnsupportedOperationException: Can't convert to color: type=0x2

如果我使用硬编码颜色代替?item_background,它可以工作,但这不允许我使用我的主题。 我也试过?attr:item_background,但同样的事情发生了。

我怎么能这样做? 为什么它在Views中有效但在Drawables中无效? 我在文档中的任何地方都找不到这个限制......

trans by 2019-09-11T08:50:25Z

android - 从矢量绘图获取位图

在我的应用程序中,我必须为通知设置一个大图标。LargeIcon必须是一个Bitmap,我的drawables是矢量图像(Android中的新功能,请看这个链接)问题是当我尝试解码作为矢量图像的资源时,我得到一个null返回。

以下是代码示例:

if (BitmapFactory.decodeResource(arg0.getResources(), R.drawable.vector_menu_objectifs) == null)
        Log.d("ISNULL", "NULL");
    else
        Log.d("ISNULL", "NOT NULL");

在此示例中,当我用&#34; normal&#34;替换R.drawable.vector_menu_objectifs时。 image,例如png,结果不为null(我得到正确的位图)有什么我想念的吗?

trans by 2019-08-13T22:26:39Z

如何修复:android.app.RemoteServiceException:从包*发布的错误通知:无法创建图标:StatusBarIcon

我在崩溃日志中看到以下异常:

android.app.RemoteServiceException: Bad notification posted from package com.my.package: Couldn't create icon: StatusBarIcon(pkg=com.my.package user=0 id=0x7f02015d level=0 visible=true num=0 )
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1456)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:146)
    at android.app.ActivityThread.main(ActivityThread.java:5487)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
    at dalvik.system.NativeStart.main(Native Method)

我使用以下方法通过AlarmManager从PendingIntent集中从IntentService发布我的通知。 此处传递的所有值都来自PendingIntent / IntentService中的bundle extras。

/**
 * Notification 
 *
 * @param c
 * @param intent
 * @param notificationId
 * @param title
 * @param message
 * @param largeIcon
 * @param smallIcon
 */
public static void showNotification(Context c, Intent intent,
        int notificationId, String title, String message, int largeIcon,
        int smallIcon) {
    PendingIntent detailsIntent = PendingIntent.getActivity(c,
            notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    // BUILD
    NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(
            c);
    // TITLE
    mNotifyBuilder.setContentTitle(title).setContentText(message);

    // ICONS
    mNotifyBuilder.setSmallIcon(smallIcon);
    if (Util.isAndroidOSAtLeast(Build.VERSION_CODES.HONEYCOMB)) {
        Bitmap large_icon_bmp = ((BitmapDrawable) c.getResources()
                .getDrawable(largeIcon)).getBitmap();
        mNotifyBuilder.setLargeIcon(large_icon_bmp);
    }

    mNotifyBuilder.setContentIntent(detailsIntent);
    mNotifyBuilder.setVibrate(new long[] { 500, 1500 });
    mNotifyBuilder.setTicker(message);
    mNotifyBuilder.setContentText(message);

    // NOTIFY
    NotificationManager nm = (NotificationManager) c
            .getSystemService(Context.NOTIFICATION_SERVICE);
    nm.notify(notificationId, mNotifyBuilder.build());
}

从我看到的其他答案 - 我看到的异常发生在setSmallIcon()没有被正确调用时。

我已检查并仔细检查传递的资源ID是否正确。

trans by 2019-08-04T04:16:21Z

android底部的形状

我需要创建一个android形状,以便只有底部有笔画(虚线)。 当我尝试以下操作时,笔划将形状从中心平分。 有谁知道怎么做对吗? 中风需要是底线/边界。 我使用形状作为TextView的背景。 请不要在意我为什么需要它。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#1bd4f6" />
        </shape>
    </item>

    <item>
        <shape android:shape="line" >
            <padding android:bottom="1dp" />

            <stroke
                android:dashGap="10px"
                android:dashWidth="10px"
                android:width="1dp"
                android:color="#ababb2" />
        </shape>
    </item>

</layer-list>
trans by 2019-07-29T05:28:31Z

Android Studio可绘制文件夹

在Android Studio中,我无法确定在应用程序中放置图像的位置。 drawable文件夹没有分解为drawable-hdpi,drawable-ldpi等。我看到了另一个问题,答案是切换到Project视图而不是Android视图,但drawable只有一个文件夹。 有mipmap-hdpi,mipmap-ldpi等,但人们都说这只适用于app图标。 我糊涂了。

trans by 2019-06-20T01:08:22Z

android - 调整浮动动作按钮的图标大小(fab)

Floating button新的浮动操作按钮应为56dp x 56dp,其中的图标应为24dp x 24dp。 所以图标和按钮之间的空间应该是16dp。

<ImageButton
    android:id="@+id/fab_add"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:layout_gravity="bottom|right"
    android:layout_marginBottom="16dp"
    android:layout_marginRight="16dp"
    android:background="@drawable/ripple_oval"
    android:elevation="8dp"
    android:src="@drawable/ic_add_black_48dp" />

ripple_oval.xml

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="?android:colorControlHighlight">
    <item>
        <shape android:shape="oval">
            <solid android:color="?android:colorAccent" />
        </shape>
    </item>
</ripple>

这是我得到的结果:
Floating button result
我使用了\ material-design-icons-1.0.0 \ content \ drawable-hdpi \ ic_add_black_48dp.png中的图标
[https://github.com/google/material-design-icons/releases/tag/1.0.1]

如何使按钮内的图标大小完全如指南中所述?

[http://www.google.com/design/spec/components/buttons.html#buttons-floating-action-button]

trans by 2019-06-02T14:26:51Z

android - 在XML数组中存储R.drawable ID

我想使用XML值文件在数组中以R.drawable.*的形式存储可绘制资源的ID,然后在我的活动中检索该数组。

有关如何实现这一目标的任何想法?

trans by 2019-05-23T08:54:09Z

不同分辨率支持android

编辑问题:

移动分辨率:
我想设计不同的屏幕dpi,如下面的分辨率。
分辨率320x480,
480×800,
540x960,
720x1280(三星S3),
1080x1920(S4,Nexus5,Nexus 5x,Moto G4),
2560 x 1440(Nexus 6,Nexus 6p,三星优势)

平板电脑分辨
480x800(micromax),
600x1024(三星tab2),
800x1280(nexus 7),
1200x1920(新nexus 7),
2048x1536(nexus 9)

我想根据设备显示分辨率使用不同的字体大小。

Q1)什么是best解决这个问题的方法problem

Q2)什么是抛出编码或XML的最佳选择?

Q3)哪个drawable文件夹代表哪个设备分辨率?

Q4)应用程序启动器图标大小为不同的分辨率?

trans by 2019-05-12T16:38:54Z

如何在Android中将Bitmap转换为Drawable?

如何将Bitmap图像转换为Drawable?

trans by 2019-03-30T23:34:18Z

android - 图标的Mipmap drawables

自Android 4.3(Jelly Bean)以来我们现在可以利用ic_launcher.png文件夹来存储“mipmap”图像。

例如,Chrome for Android将其图标存储在这些文件夹中,而不是更常规的ic_launcher.png文件夹中。

这些mipmap图像与其他熟悉的可绘制图像有何不同?

我看到在我的清单中,我们使用ic_launcher.png限定符,而不是mipmap...,这对于资源文件夹名称是有意义的:

<activity
    android:name=".MipmapDemp"
    android:icon="@mipmap/ic_launcher" />

参考文献:

Android 4.3 API文档包含以下内容:

使用mipmap作为位图或drawable的源是一个简单的方法   提供高质量图像和各种图像尺度的方法,可以   如果您希望在图像期间缩放图像,这将非常有用   动画。

Android 4.2(API级别17)在位图中添加了对mipmap的支持   class-Android在您提供时会在您的位图中交换mip图像   一个mipmap源并启用了setHasMipMap()。 现在在Android 4.3中,   您也可以通过以下方式为BitmapDrawable对象启用mipmap   提供一个mipmap资源并在一个。中设置android:mipMap属性   位图资源文件或通过调用hasMipMap()。

我没有看到任何有助于我理解的东西。


XML位图资源具有ic_launcher.png属性:

布尔。 启用或禁用mipmap提示。 请参阅setHasMipMap()   更多信息。 默认值为false。

就我所见,这不适用于启动器图标。


问题出现在Google网上论坛(资源名称“mipmap”的目的?!)上,Romain Guy回复道:

以更大的分辨率提供图像是有用的   通常是计算的(例如,在mdpi设备上,Launcher可能会   想要更大的hdpi图标来显示大型应用程序快捷方式。)

我觉得这几乎是有意义的,但并不完全。

我仍然倾向于选择Randy Sugianto的跟进:

这有什么好处? 有没有指导如何使用   mipmap,可能是为了更好的发射器图标?


当然,维基百科有一个“Mipmap”页面,它指的是一种1983年发明的旧技术,我无法与当前的Android实现相关联。


我们现在应该将所有应用程序图标存储在ic_launcher.png文件夹中,这些mipmap图像的准则是什么?


更新#1

这是一篇博文,试图解释一下。

  • Android 4.3中的drawables的Mipmapping

但是该博客文章中使用的图像显示了一个包含许多徽标的文件。 这不是我在Chrome的mipmap文件夹中看到的。

Chrome的ic_launcher.png文件夹包含三张图片。 一个是Chrome徽标,单独使用。

Chrome mipmap-hdpi icon.png

奇怪的是,它是72x72,而不是48x48,我希望看到。

也许这就是全部 - 我们只需要在mipmap文件夹中保留更大的图标?


更新#2

2014年10月23日的Android开发者博客文章再次证实了将ic_launcher.png文件夹用于应用程序图标的想法:

  • 让您的应用程序为Nexus 6和Nexus 9做好准备

在谈到Nexus 6屏幕密度时,作者写道:

最好将应用程序图标放在mipmap文件夹中(而不是   drawable-文件夹)因为它们的使用分辨率不同于   设备的电流密度。 例如,xxxhdpi应用程序图标可以是   在发射器上用于xxhdpi设备。


更新#3

请注意,Android Studio会在mipmap...文件夹中创建ic_launcher.png图标,而不是Eclipse用于创建它们的drawable...文件夹。


trans by 2019-03-30T07:36:26Z

如何在Android xml可绘制文件中定义圆形?

我在使用Android的XML中找到形状定义的文档时遇到了一些问题。 我想在XML文件中定义一个填充纯色的简单圆圈,以将其包含在我的布局文件中。

可悲的是,android.com上的文档没有涵盖Shape类的XML属性。 我想我应该使用ArcShape来绘制圆形,但是没有解释如何设置圆形从圆弧中所需的大小,颜色或角度。

trans by 2019-03-28T00:37:54Z

Android getResources()。getDrawable()已弃用API 22

使用新的Android API 22 getResources().getDrawable()现已弃用。现在最好的方法是只使用getDrawable()

有什么变化?

trans by 2019-03-27T14:57:21Z

标准的Android菜单图标,例如刷新

Android SDK通过android.R.drawable.X提供标准菜单图标。但是,android.R中缺少某些标准图标,例如ic_menu_refresh(刷新图标)。

有没有办法获得原始图标,可能是从应用程序中提取它们? 我已经检查了Android源代码,但它看起来有点太大了,无法随处查看图像。

我知道Android Drawables网站,但我想得到正确的hdpi,mdpi和ldpi版本,比原版更好。

trans by 2019-02-26T16:41:57Z

如何将图像添加到Android Studio中的“drawable”文件夹?

我需要将图像添加到res/drawable文件夹中...

当我选择res/drawable时,会出现一个对话框,选择Asset Type ......

如何将图像添加到res/drawable文件夹?

trans by 2019-02-26T14:06:36Z

1 2 下一页 共2页