android - 如何在android中获取google plus相册列表

标签 android android-layout google-plus android-photos google-photos

我想在 ListView 中显示我的 google+ 帐户相册列表

  1. 专辑名称
  2. 专辑二名称
  3. 专辑三名
  4. 专辑四名

我在 this 的帮助下成功登录了 google+ 帐户example.给我一些建议或链接

最佳答案

试试这个代码:

public class Images extends Activity
{
    private int count;
private Bitmap[] thumbnails;
private boolean[] thumbnailsselection;
private String[] arrPath;
private ImageAdapter imageAdapter;

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.images);

    final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };
    final String orderBy = MediaStore.Images.Media._ID;
    Cursor imagecursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy);
    int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
    this.count = imagecursor.getCount();
    this.thumbnails = new Bitmap[this.count];
    this.arrPath = new String[this.count];
    this.thumbnailsselection = new boolean[this.count];
    for(int i = 0; i < this.count; i++)
    {
        imagecursor.moveToPosition(i);
        int id = imagecursor.getInt(image_column_index);
        int dataColumnIndex = imagecursor.getColumnIndex(MediaStore.Images.Media.DATA);
        thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail(getApplicationContext().getContentResolver(), id, MediaStore.Images.Thumbnails.MICRO_KIND, null);
        arrPath[i] = imagecursor.getString(dataColumnIndex);
    }
    GridView imagegrid = (GridView) findViewById(R.id.PhoneImageGrid);
    imageAdapter = new ImageAdapter();
    imagegrid.setAdapter(imageAdapter);
    imagecursor.close();

    final Button selectBtn = (Button) findViewById(R.id.selectBtn);
    selectBtn.setOnClickListener(new OnClickListener()
    {

        public void onClick(View v)
        {
            final int len = thumbnailsselection.length;
            int cnt = 0;
            String selectImages = "";
            for(int i = 0; i < len; i++)
            {
                if(thumbnailsselection[i])
                {
                    cnt++;
                    selectImages = selectImages + arrPath[i] + "|";
                }
            }
            if(cnt == 0)
            {
                Toast.makeText(getApplicationContext(), "Please select at least one image", Toast.LENGTH_LONG).show();
            }
            else
            {
                Toast.makeText(getApplicationContext(), "You've selected Total " + cnt + " image(s).", Toast.LENGTH_LONG).show();
                Log.d("SelectedImages", selectImages);
            }
        }
    });
}

public class ImageAdapter extends BaseAdapter
{
    private LayoutInflater mInflater;

    public ImageAdapter()
    {
        mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public int getCount()
    {
        return count;
    }

    public Object getItem(int position)
    {
        return position;
    }

    public long getItemId(int position)
    {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent)
    {
        ViewHolder holder;
        if(convertView == null)
        {
            holder = new ViewHolder();
            convertView = mInflater.inflate(R.layout.galleryitem, null);
            holder.imageview = (ImageView) convertView.findViewById(R.id.thumbImage);
            holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox);

            convertView.setTag(holder);
        }
        else
        {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.checkbox.setId(position);
        holder.imageview.setId(position);
        holder.checkbox.setOnClickListener(new OnClickListener()
        {

            public void onClick(View v)
            {
                CheckBox cb = (CheckBox) v;
                int id = cb.getId();
                if(thumbnailsselection[id])
                {
                    cb.setChecked(false);
                    thumbnailsselection[id] = false;
                }
                else
                {
                    cb.setChecked(true);
                    thumbnailsselection[id] = true;
                }
            }
        });
        holder.imageview.setOnClickListener(new OnClickListener()
        {

            public void onClick(View v)
            {
                int id = v.getId();
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse("file://" + arrPath[id]), "image/*");
                startActivity(intent);
            }
        });
        holder.imageview.setImageBitmap(thumbnails[position]);
        holder.checkbox.setChecked(thumbnailsselection[position]);
        holder.id = position;
        return convertView;
    }
}

class ViewHolder
{
    ImageView imageview;
    CheckBox checkbox;
    int id;
}
}

关于android - 如何在android中获取google plus相册列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531254/

相关文章:

java - 在 android 中存储长数据列表的最佳选择

android - 根据固定页脚限制 fragment 大小

java - 问 : Android - Setting Font Color of entire Activity Programmatically with NO XML

c# - 使用 Google 服务帐户私钥签名数据失败

android - 将纯文本发送到 Android 中的 USB 打印机

android - 任务“:app:transformClassesAndResourcesWithProguardForRelease”执行失败

android - 如何在 android 中灵活裁剪位图图像?

android - 带有BottomSheet的windowSoftInputMode不起作用

javascript - TypeError : gapi. client.plus 未定义

iphone - 带环聊的 Google+ iphone 应用,如何自己实现环聊功能?