一手遮天 Android - view(文本类): TextView 阴影和图文
示例如下:
/view/text/TextViewDemo3.java
/**
* TextView - 文本显示控件
*
* 演示 TextView 的阴影效果和图文效果
*/
package com.webabcd.androiddemo.view.text;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import com.webabcd.androiddemo.R;
public class TextViewDemo3 extends AppCompatActivity {
private TextView _textView2;
private TextView _textView3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_text_textviewdemo3);
_textView2 = (TextView) findViewById(R.id.textView2);
_textView3 = (TextView) findViewById(R.id.textView3);
// 调整图片的位置和图片的大小
sample1();
// 在 java 中设置图文效果,并为 png 图标着色
sample2();
}
// 调整图片的位置和图片的大小
private void sample1() {
// 获取 TextView 的四个方向上的图片
// 0 - 3 分别代表左上右下
Drawable[] drawable = _textView2.getCompoundDrawables();
// 修改 TextView 上侧的图片的大小和位置
drawable[1].setBounds(0, 0, 40, 20);
// 设置 TextView 的四个方向上的图片
_textView2.setCompoundDrawables(drawable[0], drawable[1], drawable[2], drawable[3]);
}
// 在 java 中设置图文效果,并为 png 图标着色
private void sample2() {
// 获取 Drawable 对象
Drawable d1 = getResources().getDrawable(R.drawable.ic_expand_more).mutate();
// 设置图片的位置和大小
d1.setBounds(0,0,32,32);
// 为 png 图标着色
d1.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
Drawable d2 = getResources().getDrawable(R.drawable.ic_expand_more);
d2.setBounds(0,0,32,32);
d2.setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
// 设置 TextView 的四个方向上的图片
Drawable[] drawables = _textView3.getCompoundDrawables();
_textView3.setCompoundDrawables(d1, drawables[1], d2, drawables[3]);
// 设置文本与四周图片间的间距
_textView3.setCompoundDrawablePadding(0);
}
}
/layout/activity_view_text_textviewdemo3.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--
阴影效果
shadowColor - 阴影颜色
shadowRadius - 阴影的模糊程度
shadowDx - 阴影水平方向的偏移量
shadowDy - 阴影垂直方向的偏移量
-->
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="32dp"
android:textColor="#f00"
android:shadowColor="#00f"
android:shadowDx="5.0"
android:shadowDy="5.0"
android:shadowRadius="3.0"
android:text="我有阴影" />
<!--
图文效果
drawableLeft - 文本左侧的图片
drawableTop - 文本上侧的图片
drawableRight - 文本右侧的图片
drawableBottom - 文本下侧的图片
drawablePadding - 文本与四周图片间的间距
注:图片位置的调整和图片大小的调整需要在 java 中修改
-->
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:drawableTop="@drawable/img_sample_son"
android:drawableBottom="@drawable/img_sample_son"
android:drawablePadding="0dp"
android:text="你好" />
<!--
图文效果
在 java 中设置图文效果,并为 png 图标着色
-->
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:text="你好" />
</LinearLayout>