package com.wuzhou.corner.widget; import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; import com.wuzhou.corner.R; public class DefinedCardTextView extends TextView{ Paint mPaint; Canvas mCanvas; Bitmap mBitmap; Bitmap mmBitmap; @SuppressLint("NewApi") public DefinedCardTextView(Context context, AttributeSet attrs) { super(context, attrs); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setStyle(Paint.Style.STROKE); mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sfzyz_rili_img); } @SuppressLint("NewApi") @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); mmBitmap = lessenBitmap(mBitmap, 30, 30); canvas.drawBitmap(mmBitmap, (float) (getWidth() - (mmBitmap.getWidth()*1.3)), (float) (this.getHeight() - (mmBitmap.getHeight()*1.3)), mPaint); } /** * lessen the bitmap * * @param src bitmap * @param destWidth the dest bitmap width * @param destHeigth * @return new bitmap if successful ,oherwise null */ private Bitmap lessenBitmap( Bitmap src, int destWidth, int destHeigth ) { String tag = "lessenBitmap"; if( src == null ) { return null; } int w = src.getWidth();//源文件的大小 int h = src.getHeight(); // calculate the scale - in this case = 0.4f float scaleWidth = ( ( float ) destWidth ) / w;//宽度缩小比例 float scaleHeight = ( ( float ) destHeigth ) / h;//高度缩小比例 Log.d( tag, "bitmap width is :" + w ); Log.d( tag, "bitmap height is :" + h ); Log.d( tag, "new width is :" + destWidth ); Log.d( tag, "new height is :" + destHeigth ); Log.d( tag, "scale width is :" + scaleWidth ); Log.d( tag, "scale height is :" + scaleHeight ); Matrix m = new Matrix();//矩阵 m.postScale( scaleWidth, scaleHeight );//设置矩阵比例 Bitmap resizedBitmap = Bitmap.createBitmap( src, 0, 0, w, h, m, true );//直接按照矩阵的比例把源文件画入进行 return resizedBitmap; } }
相关文章
- 如何在html中把一个图片或者表格覆盖在一张已有图片上的任意位置
- Android之---ImagView显示图片(将一张图片按原图大小合理显示在imageView上,避免OOM)
- RV1126画面质量一:视频基础- 说视频之前先聊聊图像。图像就是图像,大家都知道,是由很多“带有颜色的点”组成的。这个点,就是“像素点” 像素点的英文叫 Pixel (缩写为 PX )。 这个单词是由 Picture ( 图像 ) 和 Element (元素)这两个单词的字母所组成的。 像素 是图像显示的基本单位。所以图片设计有一个一个像素点组成的 我们通常说一幅图片的大小,例如是 1920×1080,就是宽度为 1920 个像素点,高度为 1080 个像素点。 乘积是 2,073,600,也就是说,这个图片是两百万像素,1920×1080,这个也被称为这幅图片的分辨率。分辨率也是显示器的重要指标。 PPI: 什么是 PPI? 那么,我们经常所说的 PPI 又是什么东西呢? PPI,就是“Pixels Per Inch”,每英寸像素数。 也就是,手机(或显示器)屏幕上每英寸面积,到底能放下多少个“像素点”。 这个值当然是越高越好啦! PPI 越高,图像就越清晰细腻 前的功能机,例如诺基亚,屏幕 PPI 都很低,有很强烈的颗粒感。后来,苹果开创了史无前例的“视网膜”(Retina)屏幕, PPI 值高达 326(每英寸屏幕有 326 像素),画质清晰,再也没有了颗粒感。 视频编码基础知识:
- 在JLabel上显示图片,并且图片自适应JLabel的大小
- 在vue中使用CKEditor5的巨坑!调整图片大小
- 关于在小程序中生成自定义分享转发图的开发(即用canvas生成需求所要的图片在转发的时候作为转发图)
- Java 数据结构-特点: 代表一个队列,通常按照先进先出(FIFO)的顺序操作元素。 实现类: LinkedList, PriorityQueue, ArrayDeque。 堆(Heap) 堆(Heap)优先队列的基础,可以实现最大堆和最小堆。 PriorityQueue<Integer minHeap = new PriorityQueue<>; PriorityQueue<Integer maxHeap = new PriorityQueue<>(Collections.reverseOrder); 树(Trees) Java 提供了 TreeNode 类型,可以用于构建二叉树等数据结构。 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 图(Graphs) 图的表示通常需要自定义数据结构或使用图库,Java 没有内建的图类。 以上介绍的只是 Java 中一些常见的数据结构,实际上还有很多其他的数据结构和算法可以根据具体问题选择使用。 其他一些说明 以下这些类是传统遗留的,在 Java2 中引入了一种新的框架-集合框架(Collection),我们后面再讨论。 枚举(Enumeration) 枚举(Enumeration)接口虽然它本身不属于数据结构,但它在其他数据结构的范畴里应用很广。 枚举(The Enumeration)接口定义了一种从数据结构中取回连续元素的方式。 例如,枚举定义了一个叫nextElement 的方法,该方法用来得到一个包含多元素的数据结构的下一个元素。 关于枚举接口的更多信息,请参见枚举(Enumeration)。 位集合(BitSet) 位集合类实现了一组可以单独设置和清除的位或标志。 该类在处理一组布尔值的时候非常有用,你只需要给每个值赋值一"位",然后对位进行适当的设置或清除,就可以对布尔值进行操作了。 关于该类的更多信息,请参见位集合(BitSet)。 向量(Vector) 向量(Vector)类和传统数组非常相似,但是Vector的大小能根据需要动态的变化。 和数组一样,Vector对象的元素也能通过索引访问。 使用Vector类最主要的好处就是在创建对象的时候不必给对象指定大小,它的大小会根据需要动态的变化。 关于该类的更多信息,请参见向量(Vector) 栈(Stack) 栈(Stack)实现了一个后进先出(LIFO)的数据结构。 你可以把栈理解为对象的垂直分布的栈,当你添加一个新元素时,就将新元素放在其他元素的顶部。 当你从栈中取元素的时候,就从栈顶取一个元素。换句话说,最后进栈的元素最先被取出。 关于该类的更多信息,请参见栈(Stack)。 字典(Dictionary) 字典(Dictionary) 类是一个抽象类,它定义了键映射到值的数据结构。 当你想要通过特定的键而不是整数索引来访问数据的时候,这时候应该使用 Dictionary。 由于 Dictionary 类是抽象类,所以它只提供了键映射到值的数据结构,而没有提供特定的实现。 关于该类的更多信息,请参见字典( Dictionary)。 Dictionary 类在较新的 Java 版本中已经被弃用(deprecated),推荐使用 Map 接口及其实现类,如 HashMap、TreeMap 等,来代替 Dictionary。
- python识别图片上的文字并返回文字在图片中的坐标 - 小白在此
- 在GridControl控件上绑定图片的几种操作方式
- (转载)VB 查询Oracle中blob类型字段,并且把blob中的图片以流的方式显示在Image上