Android - Como adaptar imágenes en un GridView

 
Vista:

Como adaptar imágenes en un GridView

Publicado por Luis Rodriguez (8 intervenciones) el 24/10/2017 19:45:42
Tengo la la siguiente duda para ello anexare lo que tengo hecho

Layuot: main_playa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=" com.prueba1.Main_Playa ">
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay">
                <TextView
                    android:id="@+id/date"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text=""
                    android:textColor="@color/colorTexto"
                    android:textSize="20sp"
                />
            </android.support.v7.widget.Toolbar>
        </android.support.design.widget.AppBarLayout>
    <include layout="@layout/ contenido_playa"/>
</android.support.design.widget.CoordinatorLayout>


Layuot:contenido_playa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:text="center"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.prueba1.Main_Playa"
        tools:showIn="@layout/main_playa ">
                        <GridView
                android:id="@+id/txtGrid"
                android:paddingLeft="6dp"
                android:paddingRight="6dp"
                android:paddingTop="6dp"
                android:paddingBottom="6dp"
                android:verticalSpacing="6dp"
                android:layout_width="wrap_content"
                android:layout_height="340dp"
                android:layout_gravity="center"
                android:animationCache="true"
                android:columnWidth="340dp"
                android:isScrollContainer="false"
                android:numColumns="1"
                android:stretchMode="spacingWidth"
                android:textFilterEnabled="false"
                tools:layout_editor_absoluteX="8dp"
                tools:layout_editor_absoluteY="8dp"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                </GridView>
        <include/>
    <include/>
</RelativeLayout>

layuot: playa _lista
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:paddingBottom="4dp"
    android:paddingLeft="4dp"
    android:paddingRight="4dp"
    android:paddingTop="4dp"
    android:weightSum="1">
 
    <TextView
        android:id="@+id/txtN_Playa"
        style="@android:style/Widget.Button.Inset"
        android:layout_width="250dp"
        android:layout_height="36dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:text="Nombre Playa"
        android:textAppearance="@style/TextAppearance.AppCompat"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="16dp"
        android:textStyle="bold"
    />
    <TextView
        android:id="@+id/txtCiudad"
        style="@android:style/Widget.Button.Inset"
        android:layout_width="125dp"
        android:layout_height="36dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/ txtN_Playa "
        android:gravity="center"
        android:text="Ciudad"
        android:textAppearance="@style/TextAppearance.AppCompat"
        android:textColor="@color/colorFondo"
        android:textSize="14dp"
        android:textStyle="bold"
    />
    <TextView
        android:id="@+id/txtDescripcion "
        style="@android:style/Widget.Button.Inset"
        android:layout_width="125dp"
        android:layout_height="36dp"
        android:layout_alignBottom="@+id/txtImgA"
        android:layout_below="@+id/ txtN_Playa "
        android:layout_toLeftOf="@+id/txtImgA"
        android:layout_toRightOf="@+id/ txtCiudad "
        android:layout_toStartOf="@+id/txtImgA"
        android:gravity="center"
        android:text="Descripcion"
        android:textAppearance="@style/TextAppearance.AppCompat"
        android:textColor="@color/colorPrimary"
        android:textSize="14sp"
        android:textStyle="bold"
    />
    <ImageView
        android:id="@+id/txtImgA"
        style="@android:style/Widget.Button.Inset"
        android:layout_width="82dp"
        android:layout_height="72dp"
        android:layout_alignBottom="@+id/ txtCiudad "
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/ txtN_Playa "
        android:layout_toRightOf="@+id/ txtN_Playa "
    />
</RelativeLayout>

Main Activity: Main_Playa

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.AsyncTask;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ListAdapter;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
 
public class Main_Playa extends AppCompatActivity {
    ArrayList<HashMap<String, String>> PlayaGrid;
    ListAdapter adapter;
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_playa);
 
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
 
        PlayaGrid = new ArrayList<HashMap<String, String>>();
        GridView Grid = (GridView) findViewById(R.id.txtGrid);
        new GetPlayaList(Main_Playa.this,Grid).execute("http://0.0.0.00:0000/servicep1.svc/GetPlayas");
 
    }
 
    class GetPlayaList extends AsyncTask<String, Void, String> {
        String status= null;
        Activity context;
        GridView gridView;
 
 
        public GetPlayaList(Activity context, GridView gridView){
            this.context =context;
            this.gridView=gridView;
        }
 
        protected void onPreExecute(){
 
        }
 
        protected String doInBackground(String... connUrl){
            HttpURLConnection conn=null;
            BufferedReader reader;
            try{
                final URL url=new URL(connUrl[0]);
                conn=(HttpURLConnection) url.openConnection();
                conn.addRequestProperty("Content-Type", "application/json; charset=utf-8");
                conn.setRequestMethod("GET");
                int result = conn.getResponseCode();
                if(result==200){
                    InputStream in=new BufferedInputStream(conn.getInputStream());
                    reader = new BufferedReader(new InputStreamReader(in));
                    StringBuilder sb=new StringBuilder();
                    String line = null;
                    while((line=reader.readLine())!=null){
                        status=line;
                    }
                }
            }catch(Exception ex){
                ex.printStackTrace();
            }
            return status;
        }
 
        protected void onPostExecute(String result){
            super.onPostExecute(result);
            if(result!=null){
                try{
                    ArrayList<String> stringArrayList = new ArrayList<String>();
                    JSONArray jsonArray = new JSONArray(result);
                    for(int i=0; i<jsonArray.length(); i++){
                        JSONObject object = jsonArray.getJSONObject(i);
                        String N_Playa= object.getString("N_Playa");
                        String Ciudad= object.getString("Ciudad ");
                        String Descripcion= object.getString("Descripcion ");
                        HashMap<String, String> itemList = new HashMap<String, String>();
                        itemList.put("N_Playa", N_Playa);
                        itemList.put("Ciudad",Ciudad);
                        itemList.put("Descripcion ",Descripcion);
                        AnimTradGrid.add(itemList);
                    }
                    adapter = new SimpleAdapter(Main_Playa.this, PlayaGrid,R.layout.playa_lista,
                              new String[]
                                      {
                                              "N_Playa",
                                              "Ciudad",
                                              "Descripcion"
                                      },
                              new int[]
                                      {
                                              R.id.txtN_Playa
                                              R.id.txtCiudad,
                                              R.id.txtDescripcion
                                      });
                    ((AdapterView<ListAdapter>) gridView).setAdapter(adapter);
                }catch (Exception ex){
                    ex.printStackTrace();
                }
            }else{
                Toast.makeText(Main_Playa.this,"Could not get any data.",Toast.LENGTH_LONG).show();
            }
        }
    }
}


lo que necesito saber el como crear un adaptador de imágenes cuando se ingrese datos a una base de datos vincule las imágenes almacenadas en la carpeta drawable con el nombre que se muestre en el TextView = txtN_Playa si el nombre cambia cambie la imagen me facilitaron el siguiente código pero no se como aplicarlo en lo que tengo hecho

if(textView.getText().equals("Playa1")) {tuImageView.setImageResource(R.drawable.playa1);

}else if(textView.getText().equals("Playa2")){tuImageView.setImageResource(R.drawable.playa2);
}

espero de su colaboracion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder