我认为我误解了在android中绘制圆圈的概念。无论我尝试什么,我都无法让圆圈变得完美。
经过多次尝试,我设法得到了这样的
人像模式
横向模式
这看起来很可怕。我的代码是以下创建我的媒体播放器
<LinearLayout
android:id="@+id/mediaPlayer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:orientation="horizontal"
android:background="#ebeff0"
android:layout_above="@+id/bottom_navigation">
<ImageView
android:layout_width="match_parent"
android:layout_height="18dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingLeft="28dp"
android:src="@drawable/ic_repeat" />
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingLeft="22dp"
android:src="@drawable/ic_back" />
<ImageView
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_weight="1"
android:id="@+id/playbutton1"
android:background="@drawable/circle"
android:padding="15dp"
android:tint="@color/colorPrimary"
android:src="@drawable/ic_pause" />
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingRight="22dp"
android:src="@drawable/ic_forward" />
<ImageView
android:layout_width="match_parent"
android:layout_height="18dp"
android:layout_gravity="center"
android:layout_marginRight="28dp"
android:layout_weight="1"
android:src="@drawable/ic_shuffle" />
</LinearLayout>
带playbutton1的ID是带圆圈的图像。我的代码绘制了椭圆形的形状&#39;是以下
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke android:color="#d1d1d1"
android:width="5dp" />
<size
android:width="50dp"
android:height="50dp"/>
</shape>
几个问题
知道我做错了什么吗?
有没有办法简单地确保无论屏幕方向如何,形状都不会改变? (在XML中)
编辑 - 解决方案:深度工作提供的解决方案,我用以下代码替换图像代码似乎给了我所有模式中的完美圆圈。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_weight="1">
<ImageView
android:id="@+id/playbutton1"
android:layout_width="50dp"
android:layout_centerInParent="true"
android:layout_height="50dp"
android:background="@drawable/circle"
android:padding="15dp"
android:src="@drawable/ic_pause"
android:tint="@color/colorPrimary" />
</RelativeLayout>
Loosk喜欢的技巧是android:layout_centerInParent="true"
答案 0 :(得分:1)
<LinearLayout
android:id="@+id/mediaPlayer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/bottom_navigation"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:background="#ebeff0"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="18dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingLeft="28dp"
android:src="@drawable/ic_repeat" />
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingLeft="22dp"
android:src="@drawable/ic_back" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:layout_weight="1">
<ImageView
android:id="@+id/playbutton1"
android:layout_width="50dp"
android:layout_centerInParent="true"
android:layout_height="50dp"
android:background="@drawable/circle"
android:padding="15dp"
android:src="@drawable/ic_pause"
android:tint="@color/colorPrimary" />
</RelativeLayout>
<ImageView
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_gravity="center"
android:layout_weight="1"
android:paddingRight="22dp"
android:src="@drawable/ic_forward" />
<ImageView
android:layout_width="match_parent"
android:layout_height="18dp"
android:layout_gravity="center"
android:layout_marginRight="28dp"
android:layout_weight="1"
android:src="@drawable/ic_shuffle" />
</LinearLayout>
答案 1 :(得分:0)
试试这个:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="1dp"
android:color="#78d9ff"/>
答案 2 :(得分:0)
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.test.myapplication.MainActivity">
<RelativeLayout
android:id="@+id/mediaPlayer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginTop="0dp"
android:background="#ebeff0"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp">
<ImageView
android:id="@+id/imgSuffle"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:src="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/imgLeft"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:layout_toLeftOf="@+id/playbutton1"
android:paddingLeft="22dp"
android:src="@mipmap/ic_launcher" />
<ImageView
android:id="@+id/playbutton1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginLeft="11dp"
android:layout_marginRight="11dp"
android:background="@drawable/rtes"
android:padding="15dp"
android:tint="@color/colorPrimary"
/>
<ImageView
android:id="@+id/imgRight"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/playbutton1"
android:paddingRight="22dp"
android:src="@mipmap/ic_launcher" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/ic_launcher" />
</RelativeLayout>