我是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 drawables中可用吗?或者,指向图标的链接也足够了.
我正在尝试创建一个自定义按钮,根据按钮状态(按下,启用等)更改其阴影属性(半径,距离等)
我终于接受了使用XML选择器无法完成的操作,因此我重写了View.drawableStateChanged(),并尝试使用View.getDrawableState()来确定当前状态.
但是,这个函数返回一个int [],我无法弄清楚这个值的含义,以及如何从中提取单个状态.文档是纯粹的废话:
public final int [] getDrawableState()
在API级别1中添加
返回表示视图当前状态的可绘制状态的资源ID数组.
返回当前可绘制状态
我也没能找到在线示例,与此相关的Android源代码非常神秘.
那么,你如何从这个int []中弄清楚,按钮的当前"按下"状态是什么?还是"启用状态"?
android android-ui android-view android-resources android-drawable
我的Activity中有一个drawable对象.setAlpha()for drawable在API级别1 getAlpha()中引入,但在API级别19(KitKat)中引入.是否有任何替代API或支持库来获取drawable的alpha/opacity值.
而且我还有NineOldAndroids库,但getAlpha()仅适用于VIEWS.
我想drawable,我可以像一个存储整数值的ID数组integer-array中res/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中的整数数组.
我试图以编程方式更改形状的颜色,但它不起作用.
这是形状
<?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)
但是,当我改变背景颜色时,它会从屏幕上删除按钮.
如何使用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) 我创建了一个矢量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中使用它.
如果有人知道如何做,请帮助.非常感谢先进.
我有两个形状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
android ×10
android-drawable ×10
alpha ×1
android-ui ×1
android-view ×1
butterknife ×1
colors ×1
google-maps ×1
icons ×1
java ×1
marker ×1
mvvm ×1