質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

2468閲覧

GridViewを使用して画像をサムネイル表示すると縦幅が小さくなってしまう。

nanshime_2621

総合スコア32

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2015/12/17 02:49

android studioで、モバイル端末内の画像ファイルを取得してGridViewにサムネイル表示するアプリを作成しましたが、サムネイル表示の縦幅が小さくなってしまいます。
デバックをして、取得したサムネイルを見ましたが、縦横は96×96で取得しています。
表示の際のGridViewのレイアウト設定の問題かと思い、試行錯誤しましたがうまくいきません。
(xmlに、GridViewの縦幅の最小値を設定する、
android:minHeight = "100dp"
を入力するなど。)

ソースコードを以下に記載します。

[MainActivity.java]
package com.example.xx.gridlayout_2_2;

import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;

import java.util.ArrayList;

public class MainActivity extends Activity {

private GridView mGridView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mGridView = (GridView)findViewById(R.id.gridView1); //グリッド4列表示 mGridView.setNumColumns(4); //表示する画像を取得(DBへアクセス) Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; //SDカード //queryメソッドでカーソルを取得 Cursor cursor = getContentResolver().query(uri, null, null, null, null); ContentResolver cr = getContentResolver(); ArrayList<Bitmap> lstBitmap = new ArrayList<Bitmap>(); //カーソルの一番目に移動 cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++){ //画像iD取得 long id = cursor.getLong(cursor.getColumnIndexOrThrow("_id")); Bitmap bmp = MediaStore.Images.Thumbnails.getThumbnail(cr, id, MediaStore.Images.Thumbnails.MICRO_KIND, null); lstBitmap.add(bmp); cursor.moveToNext(); } //アダプター作成 Adapter adapter = new Adapter(getApplicationContext(), lstBitmap); //グリッドにアダプタを設定 mGridView.setAdapter(adapter); }

}

[activity_main.xml]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<GridView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/gridView1" android:verticalSpacing="2dp" android:horizontalSpacing="2dp" android:columnWidth="80dp" android:layout_alignParentTop="true" android:layout_alignParentStart="true" />
</LinearLayout>

[Adapter.java]
package com.example.xx.gridlayout_2_2;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;

import java.util.List;

/**

  • Created by xx on 2015/12/15.

*/
public class Adapter extends ArrayAdapter<Bitmap> {

//GridView内で画像を表示するために作成したレイアウト private static final int RESOURCE_ID = R.layout.grid_item; private LayoutInflater mInflater; public Adapter(Context context, List<Bitmap> objects) { super(context, RESOURCE_ID, objects); mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = mInflater.inflate(RESOURCE_ID, null); } ImageView imageView = (ImageView) convertView.findViewById(R.id.imageView1); imageView.setImageBitmap(getItem(position)); return convertView; }

}

[grid_item.xml]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView1" android:background="#18A608" />
</LinearLayout>

使用している環境は、
・開発環境
android studio 1.4.1
・モバイル端末
Nexus 6
android 5.1.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

columnWidthが80dpになっているからではないでしょうか?
あと、コードはマークダウンしましょう。

投稿2015/12/17 03:58

編集2015/12/17 03:59
yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanshime_2621

2015/12/17 04:32

columnWidthの行を削除、もしくはサイズを変更しても結果は変わりませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問