skeleton.xml文件数据分析

skeleton.xml文件三种信息数据分析
本文详细介绍了Skeleton.xml文件的组成部分,包括bones中的骨骼信息、bonehierarchy中的父子关系以及animations中的骨骼运动轨迹。bones记录了每个骨骼的位置、旋转和缩放;bonehierarchy定义了骨骼的层级结构;animations则描述了骨骼随时间的运动变化,包括位移、旋转和缩放。通过对这些信息的分析,可以理解并解析骨骼动画的数据。
 
Skeleton.xml文件中记录了三种信息bones,bonehierarchy,animations。
 
       <bones>
              <bone id="0" name="Hips">
                     <position x="0" y="89" z="-4.03075"/>
                     <rotation angle="0">
                            <axis x="0" y="0" z="1"/>
                     </rotation>
                     <scale x="1" y="1" z="1"/>
              </bone>
              <bone id="1" name="Spine">
                     <position x="0" y="24" z="4.03075"/>
                     <rotation angle="0">
                            <axis x="0" y="0" z="1"/>
                     </rotation>
                     <scale x="1" y="1" z="1"/>
           
package com.example.skeletonscreen import android.graphics.Color import android.os.Bundle import android.os.Handler import android.os.Looper import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.facebook.shimmer.ShimmerFrameLayout import com.ethanhua.skeleton.Skeleton class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val mainView = findViewById<ConstraintLayout>(R.id.main) val skeletonScreen= Skeleton.bind(mainView) .show() // shimmerLayout = findViewById(R.id.shimmerLayout) // listContainer = findViewById(R.id.container_list) // // // 动态生成 5 个骨架条目 // generateListSkeletonItems(5) // 模拟数据加载 Handler(Looper.getMainLooper()).postDelayed({ // shimmerLayout.stopShimmer() // shimmerLayout.visibility = View.GONE // // // 替换为真实布局 skeletonScreen.hide() // val realContent = layoutInflater.inflate(R.layout.activity_main, null) // val rootView = findViewById<ViewGroup>(android.R.id.content) // rootView.addView(realContent) }, 2000) } }<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <!-- activity_profile_skeleton.xml --> <!-- activity_profile.xml --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <ImageView android:id="@+id/ivAvatar" android:layout_width="80dp" android:layout_height="80dp" android:src="@drawable/timer" /> <TextView android:id="@+id/tvName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名" android:textSize="20sp" android:textStyle="bold" android:layout_marginTop="16dp"/> <TextView android:id="@+id/tvBio" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="用户简介内容..." android:layout_marginTop="8dp"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#CCCCCC" android:layout_marginTop="16dp"/> <TextView android:id="@+id/tvPostsTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="动态" android:textSize="18sp" android:layout_marginTop="16dp"/> <ListView android:id="@+id/lvPosts" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:layout_marginTop="8dp"/> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout>这是我的代码哪里出了问题
09-04
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值