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

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

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

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

Android Studio

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

受付中

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

nanshime_2621
nanshime_2621

総合スコア0

Java

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

Android Studio

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

1回答

0評価

0クリップ

2100閲覧

投稿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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

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

Android Studio

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