标签: android-drawable

如何在绘制(手指绘画)后将LinearLayout保存为图像

我是android的新手,并创建了一个小应用程序,我想从画廊中获取图像,然后在绘制之后(使用手指画)保存它.

我遇到的问题是绘图后,当我尝试保存图像时,它只保存带有黑色背景的绘图.从库中拍摄的图像在保存的图像中不可见.

在绘制图像并保存后:

保存的实际图像:

在此输入图像描述

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="#FFCCCCCC"
 android:orientation="vertical"
 tools:context=".ImageActivity" >

 <!-- layout for displaying save button -->
 <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_gravity="center"
    android:orientation="horizontal" >
    <ImageButton
        android:id="@+id/my_save_btn"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:contentDescription="@string/save"
        android:src="@drawable/save" />
 </LinearLayout>

 <!-- layout that displays image taken from gallery and allows to finger paint-->
 <LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:id="@+id/my_view_drawing_pad1"
    android:layout_marginBottom="3dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="3dp"
    android:layout_weight="1" >

    <LinearLayout
        android:id="@+id/my_view_drawing_pad"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    </LinearLayout>
 </LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

用于保存图像的ImageActivity.java onClick方法:

@Override
   public void onClick(View view) 
   {
      drawView.setDrawingCacheEnabled(true); …
Run Code Online (Sandbox Code Playgroud)

android android-drawable

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

Google地图中的方向箭头标记

我试图找到方向箭头标记可绘制图标(在谷歌地图中使用),但对于我的爱无法找到它或关于此事的大量信息.

有问题的标记是这个:

箭头标记

我猜这个箭头应该在内置的Android drawables中可用吗?或者,指向图标的链接也足够了.

icons android google-maps marker android-drawable

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

如何从View.getDrawableState()中识别状态

我正在尝试创建一个自定义按钮,根据按钮状态(按下,启用等)更改其阴影属性(半径,距离等)

我终于接受了使用XML选择器无法完成的操作,因此我重写了View.drawableStateChanged(),并尝试使用View.getDrawableState()来确定当前状态.

但是,这个函数返回一个int [],我无法弄清楚这个值的含义,以及如何从中提取单个状态.文档是纯粹的废话:

public final int [] getDrawableState()

在API级别1中添加

返回表示视图当前状态的可绘制状态的资源ID数组.

返回当前可绘制状态

我也没能找到在线示例,与此相关的Android源代码非常神秘.

那么,你如何从这个int []中弄清楚,按钮的当前"按下"状态是什么?还是"启用状态"?

android android-ui android-view android-resources android-drawable

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

如何获得api小于19的Drawable的alpha值

我的Activity中有一个drawable对象.setAlpha()for drawable在API级别1 getAlpha()中引入,但在API级别19(KitKat)中引入.是否有任何替代API或支持库来获取drawable的alpha/opacity值.

而且我还有NineOldAndroids库,但getAlpha()仅适用于VIEWS.

android alpha android-drawable android-api-levels

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

android可以像整数数组一样存储drawable id吗?

我想drawable,我可以像一个存储整数值的ID数组integer-arrayres/values/XXX.xml,通过使用integer-array标签.下面是声明的整数数组strings.xml

<integer-array name="icons">
     <item>1</item>
     <item>2</item>
     <item>3</item>
     <item>4</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)

但我想将可绘制的图像ID存储@drawable/someImage为xml中的整数数组.

或者是否有任何替代方法可以将可绘制的整数id存储为xml中的整数数组.

android android-resources android-drawable

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

在android中以编程方式更改形状颜色

我试图以编程方式更改形状的颜色,但它不起作用.

这是形状

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#9F2200"/>
    <stroke android:width="2dp" android:color="#fff" />
</shape>
Run Code Online (Sandbox Code Playgroud)

这是我如何使用它作为按钮的背景

<Button                
  android:id="@+id/ibtn_EA_ColorPick_new"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  android:layout_marginLeft="10dp"
  android:layout_marginRight="10dp"
  android:background="@drawable/round_button"
  />
Run Code Online (Sandbox Code Playgroud)

这就是我如何改变它的颜色

GradientDrawable bgShape = (GradientDrawable)btn_ColorPick.getBackground();
bgShape.setColor(Color.RED);
Run Code Online (Sandbox Code Playgroud)

但是,当我改变背景颜色时,它会从屏幕上删除按钮.

android android-button android-drawable android-shape

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

ButterKnife - 绑定可绘制资源

如何使用ButterKnife注释消除以下初始化代码?

private Drawable mExpandDrawable;
private Drawable mCollapseDrawable;

void init() {
    mExpandDrawable = getResources().getDrawable(R.drawable.ic_expand_small_holo_light);
    mCollapseDrawable = getResources().getDrawable(R.drawable.ic_collapse_small_holo_light);
}
Run Code Online (Sandbox Code Playgroud)

android android-drawable butterknife

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

如何在android中以编程方式更改矢量可绘制的颜色

我创建了一个矢量drawable:

ic_item_overflow.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
<path
    android:fillColor="#8b8b8b"
    android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"/>
Run Code Online (Sandbox Code Playgroud)

我想用这种矢量绘制2种颜色:深灰色代码#8b8b8b和白色:#FFFFFF

我在矢量可绘制文件中使用了深灰色代码,因此默认情况下drawable将以此颜色显示.我已经改变了这个矢量drawable的颜色,如下所示:

    Drawable drawable = ContextCompat.getDrawable
(mContext, R.drawable.ic_item_overflow);
DrawableCompat.setTint(drawable, ContextCompat.getColor(mContext, R.color.white));
Run Code Online (Sandbox Code Playgroud)

所有棒棒糖和棒棒糖后设备都能正常使用,但在棒棒糖设备上无法正常工作.我该怎么做才能在所有版本的android中使用它.

如果有人知道如何做,请帮助.非常感谢先进.

java android colors android-drawable android-vectordrawable

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

关于drawable的Android数据绑定

我有两个形状drawables,rounded_corners.xml和rounded_corners_red.xml,它们将分别用于显示有效的文本输入和无效的文本输入.

我希望在用户单击登录按钮时动态设置此drwable,以便在有效文本显示rounded_corners.xml且无效时显示rounded_corners_red.xml.

下面是我如何把它放在我的布局xml中.

<EditText android:id="@+id/et_ip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@={systemSettings.isValid ? @drawable/rounded_corners : @drawable/rounded_corners_red}"
android:text="@={systemSettings.serverIP, default=@string/ip_host}"
android:textColor="#000000" />
Run Code Online (Sandbox Code Playgroud)

我想基于我的模型类中定义的isValid observable varible动态应用drawable.我的代码编译没有错误.但它会给出运行时错误

java.lang.RuntimeException: Found data binding errors.
****/ data binding error ****msg:The expression ((systemSettingsIsValidGet) ? (getDrawableFromResource(etIp, R.drawable.rounded_corners)) : (getDrawableFromResource(etIp, R.drawable.rounded_corners_red))) cannot cannot be inverted: The condition of a ternary operator must be constant: android.databinding.tool.writer.KCode@429a75fd
file:D:xxx\app\src\main\res\layout\fragment_system_settings.xml
loc:92:47 - 92:128
****\ data binding error ****
Run Code Online (Sandbox Code Playgroud)

谁知道为什么会这样?谢谢.

android mvvm android-layout android-drawable android-databinding

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

多个六角形按钮

我正在尝试创建一个带有多个六边形按钮的设计.我能够创建一个单独的六边形按钮,但在我的情况下,我有一个项目列表,需要以下面的设计模式显示.

在此输入图像描述

如果通过这样的列表设计可能RecyclerView会更好.

android android-layout android-drawable android-recyclerview

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