Android Imageview 图片居左居右,自定义圆角
android:scaleType="fitStart" 图片靠左不变形显示,
android:scaleType=”fitEnd” 图片靠右显示,不变形.
半透明android:background="#e0000000" 透明 android:background="#00000000"
// 自定义TextView 圆角边框
package com.klgz.app.ui.widgets; import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View; import com.klgz.app.gentleman.lt.R; /**
* Created by Administrator on 2017/11/29.
* 自定义圆角图片
*
*/ public class ColorTextView extends View { /**
* 文本内容
*/
private String mTitleText;
/**
* 文本的颜色
*/
private int mTitleTextColor;
/**
* 文本的大小
*/
private int mTitleTextSize; private int ctvBackgroundColor; /**
* 圆角大小
*/
private int mCornerSize; /**
* 绘制时控制文本绘制的范围
*/
private Rect mtitleBound;
private Paint mtitlePaint; public ColorTextView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
} public ColorTextView(Context context) {
this(context, null);
} public void setCtvBackgroundColor(int ctvBackgroundColor) {
this.ctvBackgroundColor = ctvBackgroundColor;
} /**
* 获得我自定义的样式属性
*
* @param context
* @param attrs
* @param defStyle
*/
public ColorTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle); /**
* 获得我们所定义的自定义样式属性
*/
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.ColorTextView, defStyle, 0);
int n = a.getIndexCount();
for (int i = 0; i < n; i++) {
int attr = a.getIndex(i);
switch (attr) {
case R.styleable.ColorTextView_ctvText:
mTitleText = a.getString(attr);
break;
case R.styleable.ColorTextView_ctvTextColor:
// 默认颜色设置为黑色
mTitleTextColor = a.getColor(attr, Color.BLACK);
break;
case R.styleable.ColorTextView_ctvTextSize:
// 默认设置为16sp,TypeValue也可以把sp转化为px
mTitleTextSize = a.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP, 16, getResources().getDisplayMetrics()));
break;
case R.styleable.ColorTextView_ctvBackground:
//默认为白色
ctvBackgroundColor = a.getColor(attr, Color.WHITE);
break;
case R.styleable.ColorTextView_ctvCornerSize:
//默认圆角为0
mCornerSize = a.getInteger(attr, 0);
break; } }
a.recycle();
mtitlePaint = new Paint();
mtitlePaint.setTextSize(mTitleTextSize);
mtitleBound = new Rect();
mtitlePaint.getTextBounds(mTitleText, 0, mTitleText.length(), mtitleBound);
} @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int width;
int height;
if (widthMode == MeasureSpec.EXACTLY) {
width = widthSize;
} else {
mtitlePaint.setTextSize(mTitleTextSize);
mtitlePaint.getTextBounds(mTitleText, 0, mTitleText.length(), mtitleBound); int desired = getPaddingLeft() + mtitleBound.width() + getPaddingRight();
width = desired <= widthSize ? desired : widthSize;
} if (heightMode == MeasureSpec.EXACTLY) {
height = heightSize;
} else {
mtitlePaint.setTextSize(mTitleTextSize);
mtitlePaint.getTextBounds(mTitleText, 0, mTitleText.length(), mtitleBound);
int desired = getPaddingTop() + mtitleBound.height() + getPaddingBottom();
height = desired <= heightSize ? desired : heightSize;
}
setMeasuredDimension(width, height);
} @Override
protected void onDraw(Canvas canvas) { Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
paint.setAntiAlias(true);
paint.setColor(ctvBackgroundColor);
RectF rec = new RectF(0, 0, getMeasuredWidth(), getMeasuredHeight());
canvas.drawRoundRect(rec, mCornerSize, mCornerSize, paint); mtitlePaint.setColor(mTitleTextColor);
Paint.FontMetricsInt fontMetrics = mtitlePaint.getFontMetricsInt();
int baseline = (getMeasuredHeight() - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top;
canvas.drawText(mTitleText, getPaddingLeft(), baseline, mtitlePaint);
}
} // 资源 文件
<!--自定义圆角换背景色色块-->
<declare-styleable name="ColorTextView">
<attr name="ctvText" format="string" />
<attr name="ctvBackground" format="color"/>
<attr name="ctvTextSize" format="dimension"/>
<attr name="ctvTextColor" format="color"/>
<attr name="ctvCornerSize" format="integer"/>
</declare-styleable>
<com.klgz.app.ui.widgets.ColorTextView
android:id="@+id/t_sk"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" radiostyle:ctvBackground="@color/zih"
radiostyle:ctvCornerSize="10"
radiostyle:ctvText="色"
radiostyle:ctvTextColor="@color/white"
radiostyle:ctvTextSize="15sp"
/>
//改变颜色方法
t_bj.setCtvBackgroundColor(getResources().getColor(R.color.huang));
Android Imageview 图片居左居右,自定义圆角的更多相关文章
- Css设置img属性让图片水平居中/居左/居右的写法
图片的居中显示css有很多方法,但在很多情况下有的方法无效,无意发现这个系统的官方处理图片居中,居左,居右的css写法,喜欢的朋友可以收藏下哦 图片的居中显示css有很多方法,但在很多情况下有的方法无 ...
- asp.net,CSS设置<TableListView>的title居左,居左,居上
居左 DIV.TableTitleStyle TABLE.grid TH { text-align:left; } 引用 <div class="TableTitleStyle&quo ...
- Xamarin.Android ImageView 图片圆角显示
第一步:在 values 文件夹下新增 Attrs.xml 文件 <?xml version="1.0" encoding="utf-8" ?> & ...
- Android ImageView图片透明区域不响应点击事件,不规则图片透明区域响应点击事件
转载:http://blog.csdn.net/aminfo/article/details/7872681 经常会在项目中用到透明图片,不规则图片,特别是做游戏的时候,需要对图片的透明区域的点击事件 ...
- Android ImageView图片自适应 (转)
网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面)<ImageView android:id=" ...
- Android ImageView图片自适应
网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView android:id=" ...
- Android imageView图片按比例缩放
android:scaleType可控制图片的缩放方式,示例代码如下: <ImageView android:id="@+id/img" android:src=" ...
- xamarin.Android ImageView 图片圆角(自定义属性、扩展控件)
新增 /values/Attrs.xml 文件 <?xml version="1.0" encoding="utf-8" ?> <resour ...
- Android ImageView 图片设置为透明
方法一: 在xml中,设置如下 <ImageView android:id="@+id/xx_id" android:layout ...
随机推荐
- java集合相关问题
1.Map/Set 的 key 为自定义对象时,必须重写 hashCode 和 equals: 2.ArrayList 的 subList 结果不可强转成 ArrayList,否则会抛出 ClassC ...
- iOS开发中使用文字图标iconfont
在iOS的开发中,各种图标的使用是不可避免的,如果把全部图标做成图片放在项目中,那么随着项目的逐渐庞大起来,图片所占的地方就会越来越大,安装包也就随之变大了,如果图标需要根据不同的场景改变使用不同的颜 ...
- 基于JavaBean编辑器读取peroperties文件
引言 最近在重读<精通Spring+4.x++企业应用开发实战>这本书,看到了有关JavaBean编辑器的部分,了解到PropertyEditor和BeanInfo的使用.不得不说,Bea ...
- 浏览器缓存相关HTTP头部字段
1.Cache-Control/Pragma 2.Expires 3.Last-Modified/Etag
- mysql中多个left join子查询写法以及别名用法
不多说 直接上语句 SELECT a.id, a.thumbNail, a. NAME, a.marketPrice, a.memberPrice, ...
- js接收html传值
var obj = document.getElementById("orgName");无法获取输入框的值,获取的值为[object HTMLInputElement].用var ...
- common lisp的宏的工作模式
(defmacro our-expander (name) ‘(get ,name ’expander))(defmacro our-defmacro (name parms &body bo ...
- 用编写一个简单的记事本(C#实现)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 【ThinkPHP框架学习 】(1) --- thinkphp 3.2.3 验证码验证使用教程分享
框架版本:ThinkPHP框架 thinkphp 3.2.3 生成验证码 下面是最简单的方式生成验证码: $Verify = new \Think\Verify(); $Verify-> ...
- 引入CSS的方式有哪些?link和@import的有何区别应如何选择【转载】
看到淘宝网页中这样写使用的是import,而很多网站都是使用link,当然还有一些页面比较简单,流量很大的网站,是直接将CSS写在html代码中的?他们有什么区别?CSS用import还是link好? ...