If you are interested to create an application to download wallpaper or create your own gallery application you can use this tutorial as a base, maybe a lot of tutorials that you can get but this time I am trying to share some information about making custom adapter for Gridview and send data int from activity to other activity then make the image feel full with CenterCrop ImageView.
Screenshot
Source Code
Videos
Sample Code
- MainActivity.java
package ha.captaincode; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends AppCompatActivity { GridView Grid; GRIDAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); final Integer[] image = new Integer[]{R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4, R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8}; Grid = (GridView)findViewById(R.id.MyGrid); adapter = new GRIDAdapter(getApplicationContext(), R.layout.grid_item, image); Grid.setAdapter(adapter); Grid.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View v, int position, long id) { Intent go = new Intent(getApplicationContext(), Details.class); go.putExtra("image", image[position]); //By position Clicked startActivity(go); } }); } public class GRIDAdapter extends ArrayAdapter { private Integer[] Image; private int resource; private LayoutInflater inflater; public GRIDAdapter(Context context, int resource, Integer[] image) { super(context, resource, image); Image = image; this.resource = resource; inflater = (LayoutInflater)MainActivity.this.getSystemService(LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder Holder = null; if (convertView == null) { Holder = new ViewHolder(); convertView = inflater.inflate(resource, null); Holder.IMAGE = (ImageView) convertView.findViewById(R.id.imageID); convertView.setTag(Holder); } else { Holder = (ViewHolder)convertView.getTag(); } Holder.IMAGE.setImageResource(Image[position]); Holder.IMAGE.setScaleType(ImageView.ScaleType.CENTER_CROP); return convertView; } class ViewHolder { private ImageView IMAGE; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
- Details.java
package ha.captaincode; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.ImageView; /** * Created by Captain Code on 07/10/2017. */ public class Details extends AppCompatActivity { @Override public void onCreate(Bundle s){ super.onCreate(s); setContentView(R.layout.imagedetail); Integer IMAGE = getIntent().getIntExtra("image", 1/*Default Value of Int*/); ImageView img = (ImageView)findViewById(R.id.images); img.setScaleType(ImageView.ScaleType.CENTER_CROP); img.setImageResource(IMAGE); } }