drawable相关知识
-
Android -对图片Drawable进行变色Android 图片DrawableCompat利用setTint()对图片Drawable进行变色 1.利用color资源对Drawable变色 Drawable对象的来源不限制,可以是从资源getResource().getDrawable(int resourceId)也可以是其他的方式得到的Drawable Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(wrappedDrawable, color); 2.采用ColorStateList来改变Drawable Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrappedDra
-
Android 的各种 Drawable 详解原文链接概述android内置了如下几种Drawable类型:ColorDrawable、GradientDrawable、BitmapDrawable、 NinePatchDrawable、InsetDrawable、ClipDrawable、ScaleDrawable、 RotateDrawable、AnimationDrawable、LayerDrawable、LevelListDrawable、 StateListDrawable、TransitionDrawable、ShapeDrawable。Android把可绘制的对象抽象为Drawable,不同的图形图像资源就代表着不同的drawable类型。Android FrameWork提供了一些具体的Drawable实现,通常在代码中都不会直接接触Drawable的实现类。ColorDrawableColorDrawable通常设置在colors.xml文件中,比如设置View背景为纯色,实际设置的就是ColorDrawablepublic 
-
Android-Drawable setColorFilter方法踩坑原创-转载请注明出处Drawable mutations有没有遇到过这样一种情况,我们要加载同一资源到两个ImageView,但需要给其中一个资源改变颜色或者透明度。如下面的代码 ImageView imageView1 = (ImageView) view.findViewById(R.id.imageview); ImageView imageView2 = (ImageView) view.findViewById(R.id.imageview2); Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher); drawable
-
Android中的各种Drawable类详解Drawable简介图形图像的绘制需要在画布上进行操作和处理,但是绘制需要了解很多细节以及可能要进行一些复杂的处理,这样就会增加学习和使用的成本,因此系统提供了一个被称之为Drawable的类来进行绘制处理。通过这个类可以减少我们的绘制工作和使用成本,同时系统也提供了众多的Drawable的派生类比如单色、图形、位图、裁剪、动画等等来完成一些常见的绘制需求。Drawable是一个抽象的可绘制类。他主要是提供了一个可绘制的区域bound属性以及一个draw成员函数,不同的派生类通过重载draw函数的实现而产生不同的绘制结果。视图View的背景就是一个Drawable对象,在视图需要进行绘制而调用draw函数时,内部的一部分实现会将调用委托给背景属性mBackground这个Drawable对象的draw函数来完成背景的绘制,而当对视图调用setBackgroundXXXX方法进行背景设置时会根据不同的函数名来创建不同的Drawable派生类。下面是Drawable基类中的一些常用方法介绍:Drawable类的
drawable相关课程
drawable相关教程
- 5.1 Drawable 实现 既然要自定义 Drawable 资源,那么首先需要创建一个类继承自 Drawable,然后在构造器中创建画笔“Paint”,然后在draw()方法中绘制图案即可,代码示例如下:package com.emercy.myapplication;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.ColorFilter;import android.graphics.Paint;import android.graphics.PixelFormat;import android.graphics.RectF;import android.graphics.Shader;import android.graphics.drawable.Drawable;public class RoundCornerDrawable extends Drawable { private Paint mPaint; private Bitmap mBitmap; public RoundCornerDrawable(Bitmap bitmap) { this.mBitmap = bitmap; BitmapShader bitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setShader(bitmapShader); } @Override public void draw(Canvas canvas) { canvas.drawRoundRect(new RectF(0, 0, mBitmap.getWidth(), mBitmap.getHeight()), 100, 100, mPaint); } @Override public void setAlpha(int i) { mPaint.setAlpha(i); } @Override public void setColorFilter(ColorFilter colorFilter) { mPaint.setColorFilter(colorFilter); } // 返回drawable实际宽高 @Override public int getIntrinsicWidth() { return mBitmap.getWidth(); } @Override public int getIntrinsicHeight() { return mBitmap.getHeight(); }}我们在构造器中创建了一个画笔,并传入了 Bitmap 对象,此后系统在绘制的时候回调draw()方法,完成圆角形状的绘制,这样就完成了一个圆角 bitmap 的裁剪工作。
- 图片资源:Drawable 在学习 View 的时候,我们学习过 ImageView。它除了在 xml 的 src 属性中设置图片之外,还可以通过setImageDrawable( )和setBackgroundDrawable( )两个 API 设置图片资源。这两个 API 都包含一个关键词——Drawable,那么我们这一节就来看看,Drawable 到底是个什么东西。
- 1. Drawable 是什么 Drawable 从字面上理解就是一个可绘制的图形对象,最简单的例子就是常用的 Bitmap 对象,在 Android 中可以通过一个 BitmapDrawable 对象来呈现。每一个 Drawable 内部都保存了一个“res/drawable”目录下的私有文件,比如我们会将不同分辨率的图片资源存储在“mdpi”、“hdpi”、“xhdpi”以及“xxhdpi”里面,这些目录是在创建工程的时候 Android Studio 自动帮我们生成好的,然后在运行的时候系统会根据当前的设备类型自动选择一种合适的 bitmap 图片资源为我们所用。
- 2. 为 View 设置 Drawable 在 xml 中使用是很最常见的用法,而且我们一直在用,回顾一下我们设置的图片资源,比如一个 TextView 的背景样式,通常会这么写:<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/text" android:text="@string/hello_world" />其中 background 属性的值就是一个 Drawable 对象,同样我们可以在 Java 代码中给 View 设置一个 Drawable 参数:ImageView imageView = (ImageView) findViewById(R.id.imageview);imageView.setImageResource(R.drawable.image);
- 3. 加载 Bitmap 和 Drawable Android 提供了一个Bitmap类来处理 bitmap 图片相关的功能,接下来我们看看如何通过 Java 代码创建一个 Bitmap 并将 Bitmap 转换成 Drawable: AssetManager manager = getAssets(); // 从 assets 中读取 bitmap InputStream open = null; try { open = manager.open("imooc.png"); Bitmap bitmap = BitmapFactory.decodeStream(open); // 给 imageView 设置 bitmap 对象 ImageView view = (ImageView) findViewById(R.id.imageView1); view.setImageBitmap(bitmap); } catch (IOException e) { e.printStackTrace(); } finally { if (open != null) { try { open.close(); } catch (IOException e) { e.printStackTrace(); } }除此之外,还可以从“res/drawable”文件夹中获取 Drawable,并在代码中转换成 Bitmap 对象,如下:Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap);在获取的同时,我们还可以对图像进行任意比例的缩放:Bitmap originalBitmap = getBitmap();Bitmap resizedBitmap = Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, false);反过来,我们也可以将 Bitmap 转换成一个 Drawable 对象:Drawable drawable = new BitmapDrawable(getResources(),bitmap);
- 4.4 自定义 Drawable 除了上面常用的系统提供的 Drawable 之外,我们还可以自定义自己想要的图片资源,在本节的示例中我们就来自定义一个资源样式。
drawable相关搜索
-
daima
damain
dart
dataset
datasource
datediff
datediff函数
datepicker
datetime
db4o
dbi
dcloud
deallocate
debian安装
debugger
debugging
declaration
declarations
declare
decode函数