100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android Toast 吐司 自定义使用 实现动态打勾对号效果 Toast自定义教程(三)

Android Toast 吐司 自定义使用 实现动态打勾对号效果 Toast自定义教程(三)

时间:2019-01-03 00:01:32

相关推荐

Android Toast 吐司  自定义使用  实现动态打勾对号效果 Toast自定义教程(三)

这篇博客主要是写了功能的实现,在前面已经写了原理。

Android 自定义View 通过Paint和Canvas实现动态打勾对号效果

Android Toast 吐司 自定义使用 展示图片 Toast自定义教程(一)

老规矩,先上效果图

效果图

其实就是复用了之前写的自定义view,然后再写一个自定义布局的Toast。

动态打勾不再讲解,需要了解点击这里

先说布局,很简单的一个布局

布局view_toast_image.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:id="@+id/toast_relative"android:background="#7A2B2929"android:layout_width="130dp"android:layout_height="130dp"><LinearLayoutandroid:id="@+id/toast_linear"android:padding="10dp"android:orientation="vertical"android:layout_width="130dp"android:layout_height="130dp"><com.example.drawhookviewdemo.DrawHookMarkViewandroid:layout_width="100dp"android:layout_height="90dp" /><TextViewandroid:layout_marginTop="-10dp"android:id="@+id/tv_toast_clear"android:gravity="center"android:layout_width="match_parent"android:layout_height="30dp"android:textSize="13sp"android:textColor="#fff"android:text="" /></LinearLayout></RelativeLayout>

偷了个懒直接在MainActivity写了方法

class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)button.setOnClickListener {showToastWithImage("登录成功") }}//带图片的toastfun showToastWithImage(message: CharSequence) {var mtoastView = LayoutInflater.from(applicationContext).inflate(R.layout.view_toast_image, null)val relativeLayout = mtoastView?.findViewById(R.id.toast_linear) as LinearLayout//动态设置toast控件的宽高度,宽高分别是130dp//这里用了一个将dp转换为px的工具类PxUtilval layoutParams = RelativeLayout.LayoutParams(DisplayUtils.dp2px(applicationContext, 130f).toInt(), DisplayUtils.dp2px(applicationContext, 130f).toInt())relativeLayout.setLayoutParams(layoutParams)val textView = mtoastView?.findViewById(R.id.tv_toast_clear) as TextViewtextView.text = messageval mToast = Toast(application)mToast.setDuration(Toast.LENGTH_LONG);mToast?.setGravity(Gravity.CENTER, 0, 0)mToast.setView(mtoastView)mToast?.show()}}

代码地址:github

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。