我是靠谱客的博主 无心板凳,最近开发中收集的这篇文章主要介绍Android自定义TextView 达到倾斜效果,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最终效果图如下:

首先新建一个继承自TextView的类,取名为RotateTextView:

import  android.content.Context;
import  android.graphics.Canvas;
import  android.util.AttributeSet;
import  android.widget.TextView;

public  class  RotateTextView  extends  TextView {
private  static  final  String  NAMESPACE = “http://schemas.android.com/apk/res/android”;
private  static  final  String  ATTR_ROTATE = “rotate”;
private  static  final  int  DEFAULTVALUE_DEGREES = 45;
private  int  degrees ;
public  RotateTextView(Context context, AttributeSet attrs) {
super(context, attrs);
degrees = attrs.getAttributeIntValue(NAMESPACE, ATTR_ROTATE, DEFAULTVALUE_DEGREES);

}
@Override
protected  void  onDraw(Canvas canvas) {

canvas.rotate(degrees,getMeasuredWidth()/2,getMeasuredHeight()/2);
super.onDraw(canvas);
}

}

一定要有带Context和AttributeSet参数的构造函数,getAttributeIntValue()里第一个参数是命名空间,类似 于Android自带的”http://schemas.android.com/apk/res/android”,这里可以自己随便定义。第二个参数 是传入的参数的值,这里是旋转地角度。第三个参数是默认值,就是不定义该属性时默认旋转的角度,这里是0度。然后重写onDraw()方 法,rotate()作用是以TextView的中心为中点把画布旋转degrees度,这样就实现了字的旋转。

下一步就是在布局文件中使用自定义的TextView:

<com.edushi.truth.view.RotateTextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:padding=”8dip”
android:gravity=”center”
android:id=”@+id/tvBottom_color”
android:textSize=”15dip”
android:textColor=”@color/black”
android:rotate=”10″
android:layout_marginTop=”468dip”
/>

其他属性与普通的TextView相同, easymobi:rotate=”10″指定了旋转10度,但是要注意在头文件加上 xmlns:easymobi=”http://www.ywlx.net/apk/res/easymobi”,这个就是RotateTextView 中的命名空间的作用。还有一点要注意的就是加上合适的padding,因为这种方法旋转的是TextView里面的字,而不是TextView本身,如果 不加padding,有些字就会因为旋转而跑到了TextView外面而不能显示。

用类似的方法还可以实现各种各样你想要的效果。

最后

以上就是无心板凳为你收集整理的Android自定义TextView 达到倾斜效果的全部内容,希望文章能够帮你解决Android自定义TextView 达到倾斜效果所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部