package com.android.launcher3.util;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import com.android.launcher3.FastBitmapDrawable;
import com.android.launcher3.Launcher;
import com.android.launcher3.Utilities;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import it.michelelacorte.androidshortcuts.util.Utils;
/**
* Created by Michele on 16/03/2017.
*/
public class ArrayAdapterWithIcon extends ArrayAdapter<String> {
private List<Bitmap> images;
public ArrayAdapterWithIcon(Context context, List<String> items, List<Bitmap> images) {
super(context, android.R.layout.select_dialog_item, items);
this.images = images;
}
public ArrayAdapterWithIcon(Context context, String[] items, Bitmap[] images) {
super(context, android.R.layout.select_dialog_item, items);
this.images = Arrays.asList(images);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView textView = (TextView) view.findViewById(android.R.id.text1);
textView.setTextSize(18);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
int dp50 = (int) (30 * getContext().getResources().getDisplayMetrics().density + 0.3f);
Drawable icon = new BitmapDrawable(getContext().getResources(), Bitmap.createScaledBitmap(images.get(position), dp50, dp50, true));
textView.setCompoundDrawablesRelativeWithIntrinsicBounds(icon, null, null, null);
} else {
int dp50 = (int) (50 * getContext().getResources().getDisplayMetrics().density + 0.5f);
Drawable icon = new BitmapDrawable(getContext().getResources(), Bitmap.createScaledBitmap(images.get(position), dp50, dp50, true));
textView.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
}
int dp5 = (int) (10 * getContext().getResources().getDisplayMetrics().density + 0.5f);
textView.setCompoundDrawablePadding(dp5);
return view;
}
}