【iapp教程】自定义点九图Toast

IAPP   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2021-2-18

[滑稽][玫瑰]

今天给大家带来iapp自定义提示。

下面进入教学。

事例源码:
本帖含有隐藏内容,请您 回复 后查看

11楼
wubaiwan 2021-2-20
怎么不接着更新了[玫瑰]
12楼
wubaiwan 2021-2-20
按钮三的提示如何写
13楼
GTG凯币娃 2021-2-20
第四步:
制作点九图,准备一张用于背景的普通图片。

打开第一步的九图软件,导入图片。【图一】

点击加号添加左上拉伸区域【图二】。图片不按刺比例放大时会变形,这里拉伸区域就是约束变形范围。【图三】是设置完成

再设置内容区域【图四】,【图五】是设置完成

点击预览进行测试【图六】
这样就基本制作完成

14楼
GTG凯币娃 2021-2-20
第五步:
在mk.mjava文件添加以下代码

import android.graphics.NinePatch;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.graphics.drawable.NinePatchDrawable;
import android.view.View;
import android.app.Activity;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;

//设置九图背景
public void setBg(Activity a,View v,Bitmap bitmap){
byte[] chunk = bitmap.getNinePatchChunk();
boolean result = NinePatch.isNinePatchChunk(chunk);
if(result){
NinePatchDrawable patchy = new NinePatchDrawable(a.getResources(),bitmap, chunk,deserialize(chunk), null);
v.setBackgroundDrawable(patchy);
}
else{
v.setBackground(new BitmapDrawable(bitmap));
}
}
//正确获取chunk rect
public Rect deserialize( byte[] data) {
Rect mPaddings = new Rect();
final ByteBuffer byteBuffer =ByteBuffer.wrap(data).order(ByteOrder.nativeOrder());
if (byteBuffer.get() == 0) return null;
int [] mDivX = new int[byteBuffer.get()];
int [] mDivY = new int[byteBuffer.get()];
int [] mColor = new int[byteBuffer.get()];
byteBuffer.getInt();
byteBuffer.getInt();
mPaddings.left = byteBuffer.getInt();
mPaddings.right = byteBuffer.getInt();
mPaddings.top = byteBuffer.getInt();
mPaddings.bottom = byteBuffer.getInt();
return mPaddings;
}

15楼
GTG凯币娃 2021-2-20
第六步:
在mian.iyu界面的载入事件给按钮三添加单击事件。代码如下(
被替换自行对照图片更改)

//有图
ssj(3,"clicki"){
s 内容="这是一个提示"
s 字体颜色="#ffffff"
ss("width=-2
height=-2
text="+内容+"
textColor="+字体颜色,str)
nvw(null,null,"文本",str,tv)
//获取背景图
sbp("@toast.png",bm)
//设置背景图
call(null,"mjava","mk.setBg",activity,tv,bm)
//获取需要的类
ss("android.widget.Toast",Toast)
ss("android.view.View",View)
ss("android.content.Context",Context)

//获取Context
javax(context,activity,Context+"Wrapper","getApplicationContext")

//新建一个toast
javanew(toast,Toast,Context,context)

//给toast设置布局
javax(null,toast,Toast,"setView",View,tv)
//设置显示时间 只能设置0或1
javax(null,toast,Toast,"setDuration","int",0)
//展示提示
javax(null,toast,Toast,"show")
}

16楼
GTG凯币娃 2021-2-20
教程结束,事例源码链接已发。
17楼
GTG凯币娃 2021-2-20
更新了[滑稽]
18楼
wubaiwan 2021-2-20
感谢[玫瑰][玫瑰][玫瑰]
19楼
与世无争 2021-2-20
蟹蟹带佬分享
1 2

评论

登录后才可发表内容
  • 主题

    8

  • 帖子

    67

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0477s Mem:2050Kb