Android自定义TextView实现文字倾斜效果

前言

由于Android自带的TextView控件没有提供倾斜的(我暂时没有找到),我们可以自定义控件来实现,下面首先来看我们实现的效果图。

TextView文字倾斜

其实实现很简单,下面我们来看实现步骤:

1、新建一个类 LeanTextView继承TextView

public class LeanTextView extends TextView { public int getmDegrees() { return mDegrees; } public void setmDegrees(int mDegrees) { this.mDegrees = mDegrees; invalidate(); } private int mDegrees; public LeanTextView(Context context) { super(context, null); } public LeanTextView(Context context, AttributeSet attrs) { super(context, attrs, android.R.attr.textViewStyle); this.setGravity(Gravity.CENTER); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LeanTextView); mDegrees = a.getDimensionPixelSize(R.styleable.LeanTextView_degree, 0); a.recycle(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); } @Override protected void onDraw(Canvas canvas) { canvas.save(); canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop()); canvas.rotate(mDegrees, this.getWidth() / 2f, this.getHeight() / 2f); super.onDraw(canvas); canvas.restore(); } }

2、在values文件中新建styleable.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="LeanTextView"> <attr name="degree" format="dimension" /> </declare-styleable> </resources>

3、页面布局,引用自定义控件

<com.aikaifa.LeanTextView android:id="@+id/lean" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="爱开发" />

这里我们用TextView记录倾斜的角度,用SeekBar动态改变角度

<com.aikaifa.LeanTextView android:id="@+id/lean" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="爱开发" /> <TextView android:id="@+id/degrees" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:gravity="center"/> <SeekBar android:id="@+id/sb_lean" android:layout_width="match_parent" android:layout_marginTop="20dp" android:layout_height="wrap_content" android:max="100" android:progress="30" />

java代码

mText= (LeanTextView) findViewById (R.id.lean); degrees= (TextView) findViewById (R.id.degrees); SeekBar sbLean = (SeekBar) findViewById(R.id.sb_lean); sbLean.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { mText.setmDegrees(progress); degrees.setText("倾斜度:"+progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } });

这样关于TextView 文字倾斜的自定义控件就算基本完成了,是不是很简单。

项目结构图:

TextView文字倾斜项目结构图

总结

以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能有所帮助,如果有疑问大家可以留言交流。

时间: 2024-10-10 20:08:00

Android自定义TextView实现文字倾斜效果的相关文章

Android自定义TextView实现文字倾斜效果_Android

前言 由于Android自带的TextView控件没有提供倾斜的(我暂时没有找到),我们可以自定义控件来实现,下面首先来看我们实现的效果图. TextView文字倾斜 其实实现很简单,下面我们来看实现步骤: 1.新建一个类 LeanTextView继承TextView public class LeanTextView extends TextView { public int getmDegrees() { return mDegrees; } public void setmDegrees(

Android 自定义dialog添加文字超链接,点击报错无法实现跳转

问题描述 Android 自定义dialog添加文字超链接,点击报错无法实现跳转 自定义dialog,添加文字超链接,点击超链接报错,同样方法,在activity中就能实现,什么原因?? 解决方案 Intent中加入这个试试: intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 解决方案二: 报错是报的什么错,, 解决方案三: 抓取log如下 01-01 02:49:07.928: E/InputEventReceiver(3774): Excepti

Android自定义View实现折线图效果_Android

下面就是结果图(每种状态用一个表情图片表示): 一.主页面的布局文件如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&quo

Android自定义View实现折线图效果

下面就是结果图(每种状态用一个表情图片表示): 一.主页面的布局文件如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&quo

android自定义textview怎么显示字体库图标

问题描述 android自定义textview怎么显示字体库图标 androd自定义textview怎么显示字体库图标,就是iconfont各位帮帮忙 解决方案 请参考 这篇文章http://blog.csdn.net/u013401219/article/details/46427503

Android自定义VIew实现卫星菜单效果浅析_Android

 一 概述: 最近一直致力于Android自定义VIew的学习,主要在看<android群英传>,还有CSDN博客鸿洋大神和wing大神的一些文章,写的很详细,自己心血来潮,学着写了个实现了类似卫星效果的一个自定义的View,分享到博客上,望各位指点一二.写的比较粗糙,见谅.(因为是在Linux系统下写的,效果图我直接用手机拍的,难看,大家讲究下就看个效果,勿喷). 先来看个效果图,有点不忍直视: 自定义VIew准备: (1)创建继承自View的类; (2)重写构造函数; (3)定义属性. (

Android重写TextView实现文字整齐排版的方法(附demo源码下载)_Android

本文实例讲述了Android重写TextView实现文字整齐排版的方法.分享给大家供大家参考,具体如下: XRTextView类 package rong.android.test; import org.json.JSONArray; import org.json.JSONException; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; impor

Android自定义View实现弹性小球效果_Android

照例先看效果图 自定义代码示例 public class BezierView extends View { Paint paint;//画笔 Path path;//路径 int radius = 50;//圆的半径 int time = 100;//计数时长 int index; int offsetIndex; float viewX, viewY;//图形中心点坐标 float width;//屏幕宽度 float partWidth;//屏幕宽度的1/4 int paddingLeft

Android重写TextView实现文字整齐排版的方法(附demo源码下载)

本文实例讲述了Android重写TextView实现文字整齐排版的方法.分享给大家供大家参考,具体如下: XRTextView类 package rong.android.test; import org.json.JSONArray; import org.json.JSONException; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; impor