Recibo datos de json como: "B11, B12, B22, F11, F22, F1, F2, F3"
Entonces tengo 50 íconos en el diseño, cuando obtengo datos como "B11, B12, B22, F11, F22, F1, F2, F3"
Espero que 8 íconos sean VISIBLES y 42 íconos sean INVISIBLES.
Todo lo que creo es usar HashMap, pero en realidad, ¿realmente no sé cómo hacerlo?
Esta foto tiene 49 círculos, cada círculo es ImageView.
49 círculos es INVISIBLE si no obtiene ningún dato.
La foto frontal tiene 27 ciclos, la foto trasera tiene 22 ciclos.
B11 es local en el flanco derecho, F3 es local en el hombro derecho.
Esos círculos visibles / invisibles basados en los datos json que obtengo.
Mi archivo xml:
<RelativeLayout
android:layout_alignTop="@+id/pv_icon"
android:layout_height="match_parent"
android:layout_marginLeft="50dp"
android:layout_toRightOf="@+id/view_pain_level"
android:layout_width="match_parent">
<ImageView
android:id="@+id/iv_pain_position"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@mipmap/pain_position" />
<ImageView
android:id="@+id/body_f1"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="16dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b1"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="266dp"
android:layout_marginTop="18dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f2"
android:layout_below="@+id/body_f1"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b2"
android:layout_below="@+id/body_b1"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="266dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f3"
android:layout_below="@+id/body_f2"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="84dp"
android:layout_marginTop="13dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f4"
android:layout_alignTop="@+id/body_f3"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="44dp"
android:layout_toRightOf="@+id/body_f3"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b3"
android:layout_below="@+id/body_b2"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="240dp"
android:layout_marginTop="12dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b4"
android:layout_alignTop="@+id/body_b3"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="44dp"
android:layout_toRightOf="@+id/body_b3"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f5"
android:layout_below="@+id/body_f2"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f11"
android:layout_below="@+id/body_f5"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f15"
android:layout_below="@+id/body_f11"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="40dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f6"
android:layout_below="@+id/body_f3"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="80dp"
android:layout_marginTop="12dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f9"
android:layout_alignTop="@+id/body_f6"
android:layout_below="@+id/body_f3"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="9dp"
android:layout_toRightOf="@+id/body_f6"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f8"
android:layout_alignTop="@+id/body_f9"
android:layout_below="@+id/body_f5"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/body_f9"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f7"
android:layout_alignTop="@+id/body_f8"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="9dp"
android:layout_toRightOf="@+id/body_f8"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f26"
android:layout_below="@+id/body_f15"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="96dp"
android:layout_marginTop="7dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f27"
android:layout_alignTop="@+id/body_f26"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/body_f26"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f10"
android:layout_below="@+id/body_f6"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="75dp"
android:layout_marginTop="19dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f12"
android:layout_alignTop="@+id/body_f10"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="28dp"
android:layout_toRightOf="@+id/body_f11"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f13"
android:layout_below="@+id/body_f10"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="70dp"
android:layout_marginTop="18dp"
android:layout_width="@dimen/body_height"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f14"
android:layout_alignTop="@+id/body_f13"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="72dp"
android:layout_toRightOf="@+id/body_f13"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f16"
android:layout_below="@+id/body_f13"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="65dp"
android:layout_marginTop="18dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f17"
android:layout_alignTop="@id/body_f16"
android:layout_below="@+id/body_f14"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="22dp"
android:layout_toRightOf="@+id/body_f27"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f18"
android:layout_below="@+id/body_f26"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="96dp"
android:layout_marginTop="18dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f19"
android:layout_alignTop="@+id/body_f18"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="19dp"
android:layout_toRightOf="@+id/body_f18"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f20"
android:layout_below="@+id/body_f18"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="96dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f21"
android:layout_alignTop="@+id/body_f20"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/body_f20"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f22"
android:layout_below="@+id/body_f20"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="96dp"
android:layout_marginTop="24dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f23"
android:layout_alignTop="@id/body_f22"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/body_f22"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f24"
android:layout_below="@+id/body_f22"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="96dp"
android:layout_marginTop="40dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_f25"
android:layout_alignTop="@+id/body_f24"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="20dp"
android:layout_toRightOf="@+id/body_f24"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b5"
android:layout_below="@+id/body_b3"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="235dp"
android:layout_marginTop="13dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b6"
android:layout_alignTop="@+id/body_b5"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="14dp"
android:layout_toRightOf="@+id/body_b5"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b7"
android:layout_alignTop="@+id/body_b6"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="9dp"
android:layout_toRightOf="@+id/body_b6"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b8"
android:layout_alignTop="@+id/body_b7"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="13dp"
android:layout_toRightOf="@+id/body_b7"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b9"
android:layout_below="@+id/body_b5"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="225dp"
android:layout_marginTop="35dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b10"
android:layout_alignTop="@+id/body_b9"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="23dp"
android:layout_toRightOf="@+id/body_b9"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b11"
android:layout_alignTop="@+id/body_b10"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/body_b10"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b12"
android:layout_alignTop="@+id/body_b11"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="21dp"
android:layout_toRightOf="@+id/body_b11"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b13"
android:layout_below="@+id/body_b9"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="223dp"
android:layout_marginTop="30dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b14"
android:layout_alignTop="@+id/body_b13"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="22dp"
android:layout_toRightOf="@+id/body_b13"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b15"
android:layout_alignTop="@+id/body_b14"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/body_b14"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b16"
android:layout_alignTop="@+id/body_b15"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="22dp"
android:layout_toRightOf="@+id/body_b15"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b17"
android:layout_below="@+id/body_b14"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="253dp"
android:layout_marginTop="29dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b18"
android:layout_alignTop="@+id/body_b17"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/body_b17"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b19"
android:layout_below="@+id/body_b17"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="252dp"
android:layout_marginTop="57dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b20"
android:layout_alignTop="@+id/body_b19"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/body_b19"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b21"
android:layout_below="@+id/body_b19"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="252dp"
android:layout_marginTop="34dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
<ImageView
android:id="@+id/body_b22"
android:layout_alignTop="@+id/body_b21"
android:layout_height="@dimen/body_height"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/body_b21"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
</RelativeLayout>
2 respuestas
Después de entender su pregunta apenas,
Lo que desea hacer es configurar la visibilidad de algunos ImageView
sa VISIBLE
o INVISIBLE
en función de algunos datos que supongo que obtuvo en JSON
o en cualquier formato. Una forma de lograr esto es: primero obtenemos nuestros datos y configuramos manualmente los id
s de ImageView
s en su archivo activity_*.xml
.
Luego, actualice dinámicamente la visibilidad en consecuencia.
En su opinión:
<RelativeLayout
android:layout_alignTop="@+id/pv_icon"
android:layout_height="match_parent"
android:layout_marginLeft="50dp"
android:layout_toRightOf="@+id/view_pain_level"
android:layout_width="match_parent">
<ImageView
android:id="@+id/B11" <-- Notice here
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@mipmap/pain_position" />
<ImageView
android:id="@+id/B12" <-- Notice here
android:layout_height="@dimen/body_height"
android:layout_marginLeft="110dp"
android:layout_marginTop="16dp"
android:layout_width="@dimen/body_width"
android:src="@drawable/ic_circle_black_2dp" />
.
.
.
</RelativeLayout>
Entonces en tu Activity
:
void setImageViews() {
String data = getFromSomeComplicatedSource();
String[] ids = data.split(",");
for (String imageViewId : ids) {
int resID = getResources().getIdentifier(imageViewId, "id", getPackageName()); // this will give R.id.ids[i]
ImageView imageView = findViewById(resID);
if (imageView != null) {
imageView.setBackgroundColor(Color.RED);
imageView.setVisibility(View.VISIBLE);
}
}
}
private String getFromSomeComplicatedSource() {
// after getting data, convert it to String
String data = "B11,B12,B22,F11,F22,F1,F2,F3";
return data;
}
De esta manera logras lo que quieres.
Esta es una pregunta común que solo podríamos dar consejos al respecto.
Simplemente cree la vista xml. Después, puede guardar las variables del servicio de API en su clase y decidir qué puntos son visibles y cuáles no.
¡Buena suerte!
Preguntas relacionadas
Nuevas preguntas
android
Android es el sistema operativo móvil de Google, que se utiliza para programar o desarrollar dispositivos digitales (teléfonos inteligentes, tabletas, automóviles, televisores, ropa, vidrio, IoT). Para temas relacionados con Android, use etiquetas específicas de Android, tales como intención de Android, actividad de Android, adaptador de Android, etc. Para preguntas que no sean de desarrollo o programación, pero relacionadas con el marco de Android, use este enlace: https: // android.stackexchange.com.