当前位置: 首页 > news >正文

外贸商城网站开发建站网站哪个最好

外贸商城网站开发,建站网站哪个最好,宿州网站建设多少钱,我想注册网站怎么做先看看效果图 1.自定义 View 的基本流程 创建 View Class创建 attr 属性文件#xff0c;确定属性View Class 绑定 attr 属性onMeasure 测量onDraw 绘制onTouchEvent ( 用户交互需要处理 ) 1.1 创建 View Class package com.example.view_day05_ratingbar;import android.…先看看效果图 1.自定义 View 的基本流程 创建 View Class创建 attr 属性文件确定属性View Class 绑定 attr 属性onMeasure 测量onDraw 绘制onTouchEvent ( 用户交互需要处理 ) 1.1 创建 View Class package com.example.view_day05_ratingbar;import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.view.View;import androidx.annotation.Nullable;public class RatingBar extends View {private static final String TAG wqq;private Bitmap mStartNormalBitmap,mStartFocusBitmap;private int mGradeNumber 5;private int mCurrentGrade 0;public RatingBar(Context context) {this(context, null);}public RatingBar(Context context, Nullable org.jetbrains.annotations.Nullable AttributeSet attrs) {this(context, attrs, 0);}public RatingBar(Context context, Nullable org.jetbrains.annotations.Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);TypedArray array context.obtainStyledAttributes(attrs,R.styleable.RatingBar);int starNormalID array.getResourceId(R.styleable.RatingBar_starNormal,0);if (starNormalID 0) {throw new RuntimeException(请设置属性 startNormal);}mStartNormalBitmap BitmapFactory.decodeResource(getResources(),starNormalID);int startFocusId array.getResourceId(R.styleable.RatingBar_starFocus, 0);if (startFocusId 0) {throw new RuntimeException(请设置属性 startFocusId);}mStartFocusBitmap BitmapFactory.decodeResource(getResources(), startFocusId);mGradeNumber array.getInt(R.styleable.RatingBar_gradeNumber,0);array.recycle();}Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);//高度 一张图片的高度自己去实现 paddingint height mStartNormalBitmap.getHeight();int width mGradeNumber * mStartFocusBitmap.getWidth();setMeasuredDimension(width,height);}Overrideprotected void onDraw(Canvas canvas) {for (int i 0; i mGradeNumber; i) {int x i * mStartFocusBitmap.getWidth();if (mCurrentGrade i) {canvas.drawBitmap(mStartFocusBitmap,x,0,null);} else {canvas.drawBitmap(mStartNormalBitmap,x,0,null);}}}Overridepublic boolean onTouchEvent(MotionEvent event) {//移动 按下 抬起 处理逻辑都是一样判断手指的位置根据当前位置计算出分数再去刷新界面显示switch(event.getAction()) {case MotionEvent.ACTION_DOWN: //按下case MotionEvent.ACTION_MOVE: // 移动//case MotionEvent.ACTION_UP: // 抬起,up事件可以去掉优化ondraw调用次数float moveX event.getX(); // event.getX()获取相对于当前控件的位置event.getRawX()获取屏幕的x位置Log.e(TAG, movex: moveX event: event.getAction());int currentGrade (int)(moveX/mStartFocusBitmap.getWidth() 1);if (currentGrade 0) {currentGrade 0;}if (currentGrade mGradeNumber) {currentGrade mGradeNumber;}//相等的话就不用重复绘制了if (currentGrade mCurrentGrade) {return true;}mCurrentGrade currentGrade;//刷新显示invalidate();// 由于ondraw流程很长尽量减少ondraw的调用,减少内存break;}return true;} } 下篇文字会分析 onTouchEvent 源码为什么要设置返回 true 1.2 创建 attr ?xml version1.0 encodingutf-8? resourcesdeclare-styleable nameRatingBar!--未选中引用--attr namestarNormal formatreference /!--选中引用--attr namestarFocus formatreference /!--最大的分数--attr namegradeNumber formatinteger /!--当前的分数--attr namecurrentGrade formatinteger /!--星星之间的间距--attr namestarPadding formatdimension //declare-styleable /resources1.3 创建图片资源 在\app\src\main\res目录下创建文件夹drawable-xhdpi将星星图片复制进去。 1.4 布局文件 activity_main.xml ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context.MainActivityTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textHello World!app:layout_constraintBottom_toBottomOfparentapp:layout_constraintLeft_toLeftOfparentapp:layout_constraintRight_toRightOfparentapp:layout_constraintTop_toTopOfparent /com.example.view_day05_ratingbar.RatingBarandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_gravitycenterandroid:backgroundcolor/purple_200app:starPadding50dpapp:starFocusdrawable/selectapp:starNormaldrawable/start_normalapp:gradeNumber5//RelativeLayout
http://wiki.neutronadmin.com/news/143983/

相关文章:

  • 做贸易选哪家网站京美建站官网
  • 谷歌云 阿里云 做网站广州建站快车
  • 东莞哪里能学建设网站给个网站最新的2021
  • 网站开发专业培训免费小程序制作平台
  • wordpress网站主机名编辑网站
  • 做网站用虚拟主机怎么样硬件开发平台是什么意思
  • 用python做的网站多吗化妆品公司网站源码
  • 兰州企业网站株洲优化公司
  • 前端网站开发百度网站怎么做信息
  • 建站快车用户登录小程序询价表
  • 织梦网站管理系统做机械设备网站
  • 网站开发的选题审批表仿爱奇艺网站源码
  • 做零食用哪个网站好网站备案跟域名有什么关系
  • 农庄网站模板不要验证码的广告网站
  • 珠海公司网站制作做网站用php转html
  • 北京网站排名北京住房与城乡建设网站
  • 最超值的锦州网站建设做销售有什么技巧和方法
  • 蒲县网站建设有什么网站可以做团购
  • 帝国网站后台管理系统五大跨境电商平台对比分析
  • 在柬埔寨做网站彩票推广怎么找推广平台
  • 如何建设自己的网站来获取流量哪里做网站百度收录块
  • 临海门户网站住房和城乡建设规划局成都互联网公司排名
  • 郑州网站推广公司价格新手小白如何互联网创业
  • 网站右侧浮动导航域名转移 网站访问
  • 广州网站开发方案重庆设计公司招聘
  • 企业网站内容模块网站建设后台功能
  • 网站空间购买哪个好北京最近确诊病例轨迹
  • 我的世界服务器网站建设html学校网站模板
  • 北京专业网站建设公司哪家好电子商务具体干嘛的
  • 珠江网站建设郑州做优化的公司有哪些