- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在创建音乐应用程序,并且在 Activity 中绘制五线谱时遇到了问题。这是没有五线谱的 Activity 的样子:
以下是其中一项 Activity 的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@color/colorBackground"
tools:context="aphitech.musicappproject.MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="90dp"
android:clickable="false">
<ImageView
android:id="@+id/LowAb"
android:layout_width="match_parent"
android:layout_height="90dp"
android:src="@drawable/rectangle"
/>
</RelativeLayout>
<ImageView
android:id="@+id/spacer"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ImageView
android:id="@+id/LowA"
android:foreground="@drawable/stavelines"
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="@drawable/rectangle"
android:paddingBottom="20dp"
android:foregroundGravity="top" />
<ImageView
android:id="@+id/spacer1"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ImageView
android:id="@+id/RegAb"
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="@drawable/rectangle"
android:paddingBottom="20dp"/>
<ImageView
android:id="@+id/spacer2"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ImageView
android:id="@+id/RegA"
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="@drawable/rectangle"
android:paddingBottom="20dp"/>
<ImageView
android:id="@+id/spacer3"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ImageView
android:id="@+id/HighAb"
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="@drawable/rectangle"
android:paddingBottom="20dp"/>
<ImageView
android:id="@+id/spacer4"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ImageView
android:id="@+id/HighA"
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="@drawable/rectangle"
android:paddingBottom="20dp"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
我制作了一个可绘制的五线谱,我试图将其放在每个 ImageView 的顶部,因为我想在其上动态绘制每个音符。这是一张图片:
这也是代码:
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="2dp" android:color="#000000"/>
<size android:height="20dp" />
<padding android:bottom="20dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="2dp" android:color="#000000"/>
<size android:height="20dp" />
<padding android:bottom="20dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="2dp" android:color="#000000"/>
<size android:height="20dp" />
<padding android:bottom="20dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="2dp" android:color="#000000"/>
<size android:height="20dp" />
<padding android:bottom="20dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">
<stroke android:width="2dp" android:color="#000000"/>
<size android:height="20dp" />
</shape>
</item>
这是所有东西组合在一起的样子:
我想让五线谱直接位于每个矩形的中心,但它总是太高或太低,具体取决于我在其上放置的填充。我假设问题出在五线谱本身的创建上。
最佳答案
我个人会选择表格布局,将根布局背景设置为黑色,进行表格布局,然后添加边距和背景为白色的行。使用权重总和,将所有行设置为相等,并根据屏幕调整大小。考虑到您将动态添加注释,我会将每一行作为一个单独的元素引入,这样您就可以调用每个行 ID。我添加了我刚刚快速编写的代码。
表格布局
<TableLayout
android:weightSum="5"
android:stretchColumns="*"
android:layout_width="match_parent"
android:layout_height="match_parent">
行示例
<TableRow
android:layout_weight="1"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:background="@color/lightCream"
android:layout_margin="10dp"
android:weightSum="5">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/blackline"
android:id="@+id/line1"
android:contentDescription="@string/line" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/blackline"
android:id="@+id/line2"
android:contentDescription="@string/line" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/blackline"
android:contentDescription="@string/line"
android:id="@+id/line3" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/line"
android:background="@drawable/blackline"
android:id="@+id/line4" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:contentDescription="@string/line"
android:background="@drawable/blackline"
android:id="@+id/line5" />
</LinearLayout>
</TableRow>
screen shot music.png
我用顶部和底部填充的油漆绘制了每条线,并且背景与该行的背景(白色)相匹配。左侧或右侧没有填充 Example
进行权重求和将平均分割行大小,具有垂直方向的线性布局允许您对每行应用权重总和,因此它们也被平均分割,并且应该适应屏幕尺寸的变化。
但我强烈建议以编程方式对布局进行编程,而不是使用 xml,因为行数单一,应用 Java 编程技术将使其使用起来更加灵活,并为您提供更清晰的代码。
关于java - 为什么我的 ImageView 上的前景没有在背景上正确居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37095294/
我正在使用 Gunicorn 为 Django 应用程序提供服务,它工作正常,直到我将其超时时间从 30 秒更改为 900000 秒,我不得不这样做,因为我有一个用例需要上传和处理一个巨大的文件(过程
我有一个带有非常基本的管道的Jenkinsfile,它可以旋转docker容器: pipeline { agent { dockerfile { args '-u root' } } stag
在学习 MEAN 堆栈的过程中,我遇到了一个问题。每当我尝试使用 Passport 验证方法时,它都不会返回任何响应。我总是收到“localhost没有发送任何数据。ERR_EMPTY_RESPONS
在当今的大多数企业堆栈中,数据库是我们存储所有秘密的地方。它是安全屋,是待命室,也是用于存储可能非常私密或极具价值的物品的集散地。对于依赖它的数据库管理员、程序员和DevOps团队来说,保护它免受所
是否可以创建像图片上那样的边框?只需使用 css 边框属性。最终结果将是没 Angular 盒子。我不想添加额外的 html 元素。我只想为每个 li 元素添加 css 边框信息。 假设这是一个 ul
我是一名优秀的程序员,十分优秀!