Escala de círculo según el tamaño de la pantalla

Ha sido un tiempo que estoy atrapado con esto. Soy un desarrollador androide novato.

Tengo un círculo dibujable.

Circular_shape.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:useLevel="false" android:shape="ring" android:thickness="0.8dp"> <solid android:color="@android:color/holo_blue_dark"/> </shape> 

Ahora quiero usar este círculo en mi distribución de actividades de tal manera que cubre toda la pantalla. Es decir, el ancho de la pantalla debe ser igual a Diámetro del círculo. Tenga en cuenta que no he establecido el radio del círculo.

Example_activity.xml

 <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/exampleLayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.anil.raceorganizer.ExampleActivity"> <ImageView android:id="@+id/race_field" android:src="@drawable/circular_shape" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/darker_gray" android:padding="0dp" android:layout_margin="0dp" ></ImageView> </FrameLayout> 

Tenga en cuenta que he intentado poner el relleno y margen como 0, pero no funcionó. También intenté fijar el tamaño del ImageView a través del código, pero cambió solamente el tamaño del ImageView en conjunto y no el círculo solamente.

Esto es lo que obtengo con este código.

Introduzca aquí la descripción de la imagen

Cualquier ayuda es muy apreciada.

Puede probar este código:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="ring" android:thickness="0.8dp" android:useLevel="false" android:innerRadiusRatio="2.1"> <solid android:color="@android:color/holo_blue_dark" /> </shape>

Usando Canvas, podemos dibujar formas que coincidan con el ancho de la pantalla.

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444); Canvas c = new Canvas(bmp); RectF rect = new RectF(0,0,width,width); drawCircle(rect, c, width, height); } private void drawCircle(RectF rect, Canvas c, int width, int height) { Paint paint = new Paint(); paint.setARGB(255, 255 , 10, 21); paint.setStrokeWidth(8); paint.setAntiAlias(true); paint.setStrokeCap(Paint.Cap.BUTT); paint.setStyle(Paint.Style.STROKE); int radius; if(width < height) radius = width/2; else radius = height/2; radius-= 4; c.drawCircle(width/2, height/2, radius, paint); } 

No estoy seguro si podría ayudarte. Si no es así, avísame. ¡Prefiero suprimir que conseguir downvotes!

Prueba esto Puedes usar esta etiqueta en drawable

 android:innerRadius="150dp" 

Cambie el radio en consecuencia

 Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; 

Utilice el ancho de arriba

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:useLevel="false" android:shape="ring" android:innerRadius="150dp" android:thickness="0.8dp"> <solid android:color="@android:color/holo_blue_dark"/> </shape> 

Utilice este tipo de enfoque para obtener anillo como estructura.

Utilice etiquetas de tamaño para conservar la relación de aspecto 1: 1

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > <size android:width="50dp" android:height="50dp"/> <stroke android:color="#000" android:width="0.1dp"/> </shape> 
  • ¿Cómo mantener la consistencia con XML drawables a través de diferentes tamaños de pantalla?
  • No se puede agregar la dependencia de archivos XStream al proyecto de Android Studio
  • No se permite el atributo de manifiesto de Android aquí
  • Andorid cordova phonegap config.xml prefijo sin conexión
  • Android intentando ejecutar mi proyecto en eclipse y terminar con xml.out
  • Android Studio - Importación de la biblioteca Simple-Xml
  • RSS Feed y ejemplo de adaptador de Google XML - ¿Funciona?
  • TabLayout se bloquea después de actualizar la biblioteca de soporte a 23.2.0
  • Android obteniendo valor del botón de radio seleccionado
  • Cambiar el color de fondo de la barra de acción mediante AppCompat
  • Android - ¿Cómo crear el ID de xml?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.