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

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

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

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

1958閲覧

bitmapを取得しimagebuttonにセットする

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/08/25 00:43

今アンドロイドアプリを作成しています。
ユーザーがプロフィール画像を設定できるようにしたいです。
bitmapを取得しimagebuttonにセットすることをやりたいのですが、やり方がわからなくて困っています。
アクティビティに書くべきなのでしょうか?もしそうならなんて書けば良いのでしょうか?

AsyncTaskActivity.java には

Java

1package me.myreco.up; 2 3import android.graphics.Bitmap; 4import android.graphics.BitmapFactory; 5import android.graphics.drawable.BitmapDrawable; 6import android.os.AsyncTask; 7import android.net.Uri; 8import android.support.v7.widget.AppCompatImageButton; 9import android.widget.ImageButton; 10import android.widget.ImageView; 11 12 13 14public class AsyncTaskTestActivity extends AsyncTask<Uri.Builder, Void, Bitmap>{ 15 16 private Bitmap bitmap; 17 18 19 20 @Override 21 protected Bitmap doInBackground(Uri.Builder... builder){ 22 23 // 受け取ったbuilderでインターネット通信する 24 // 後で入力する 25 26 ImageView imageView = (ImageView)findViewBy(R.id.imageButton2) ; 27 Bitmap bmp = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); 28 return bitmap; 29 }

}

と記載し、

protected Bitmap doInBackground(Uri.Builder... builder){ // 受け取ったbuilderでインターネット通信する // 後で入力する ImageView imageView = (ImageView)findViewBy(R.id.imageButton2) ; Bitmap bmp = ((BitmapDrawable)imageView.getDrawable()).getBitmap(); return bitmap; }

のところでbitmapを取得するようにしました。
Activityの方では

Java

1 @Override 2 public void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.profile_activity); 5 6 FirebaseAnalytics = FirebaseAnalytics.getInstance(this); 7 FirebaseAnalytics.logEvent("LoginFragment", null); 8 9 10 mailEdit = (EditText) findViewById(R.id.editingusername); 11 usernametext = (EditText) findViewById(R.id.editingmail); 12 passEdit = (EditText) findViewById(R.id.editingpass); 13 introductiontext = (EditText) findViewById(R.id.editingintro); 14 areatext = (EditText) findViewById(R.id.editingarea); 15 birthdaytext = (EditText) findViewById(R.id.editingbirthday); 16 sextext = (EditText) findViewById(R.id.editingsex); 17 twittertext = (EditText) findViewById(R.id.editingtwitter); 18 facebooktext = (EditText) findViewById(R.id.editingfacebook); 19 icon = (ImageButton) findViewById(R.id.imageButton2); 20 21 22 View.OnTouchListener focus_listener = new View.OnTouchListener() { 23 @Override 24 public boolean onTouch(View v, MotionEvent event) { 25 v.requestFocusFromTouch(); 26 return false; 27 } 28 }; 29 30 mailEdit.setOnTouchListener(focus_listener); 31 32 passEdit.setOnTouchListener(focus_listener); 33 34 usernametext.setOnTouchListener(focus_listener); 35 36 introductiontext.setOnTouchListener(focus_listener); 37 38 areatext.setOnTouchListener(focus_listener); 39 40 birthdaytext.setOnTouchListener(focus_listener); 41 42 sextext.setOnTouchListener(focus_listener); 43 44 twittertext.setOnTouchListener(focus_listener); 45 46 facebooktext.setOnTouchListener(focus_listener); 47 48 saveButton = (Button) findViewById(R.id.editsave); 49 50 SavePreference savePreference = new SavePreference(); 51 String aToken = savePreference.load_aToken(getApplicationContext()); 52 53 UserInfoApi api = ServiceGenerator.createService(UserInfoApi.class, aToken); 54 Call<UserInfo> call = api.getUserInfo(); 55 56 call.enqueue(new Callback<UserInfo>() { 57 58 public void onResponse(Call<UserInfo> call, Response<UserInfo> UserInfoResponse) { 59 String email = UserInfoResponse.body().getEmail(); 60 Integer id = UserInfoResponse.body().getId(); 61 String username = UserInfoResponse.body().getUsername(); 62 Object area = UserInfoResponse.body().getArea(); 63 String bio = UserInfoResponse.body().getAttribute(); 64 String sex = UserInfoResponse.body().getSex(); 65 Object birthday = UserInfoResponse.body().getBirthday(); 66 String iconurl = (String) UserInfoResponse.body().getIcon(); 67 68 69 mailEdit.setText(email); 70 71 passEdit.setText(String.valueOf(id)); 72 if (username != null) { 73 usernametext.setText(String.valueOf(username)); 74 } 75 if (area != null) { 76 areatext.setText(String.valueOf(area)); 77 } 78 if (area != null) { 79 areatext.setText(String.valueOf(area)); 80 } 81 if (bio != null) { 82 introductiontext.setText(String.valueOf(bio)); 83 } 84 if (sex != null) { 85 sextext.setText(String.valueOf(sex)); 86 } 87 if (birthday != null) { 88 birthdaytext.setText(String.valueOf(birthday)); 89 } 90 if (iconurl != null) { 91 URL url = null; 92 try { 93 url = new URL(iconurl); 94 } catch (MalformedURLException e) { 95 e.printStackTrace(); 96 } 97 InputStream istream = null; 98 try { 99 istream = url.openStream(); 100 } catch (IOException e) { 101 e.printStackTrace(); 102 } 103 //読み込んだファイルをビットマップに変換 104 Bitmap oBmp = BitmapFactory.decodeStream(istream); 105 //ビットマップをImageButtonに設定 106 bitmap = RadiusImage(bitmap); 107 icon.setImageDrawable(null); 108 icon.setImageBitmap(bitmap); 109 //インプットストリームを閉じる 110 try { 111 istream.close(); 112 } catch (IOException e) { 113 e.printStackTrace(); 114 } 115 116 } 117 } 118 119 public void onFailure(Call<UserInfo> call, Throwable t) { 120 new AlertDialog.Builder(getApplicationContext()) 121 .setTitle("失敗しました") 122 .setMessage("") 123 .setPositiveButton("OK", null) 124 .show(); 125 126 } 127 128 }); 129 130 131 saveButton.setOnClickListener(new View.OnClickListener() { 132 @Override 133 public void onClick(View v) { 134 135 } 136 }); 137 } 138 139 140 141 // ATTENTION: This was auto-generated to implement the App Indexing API. 142 // See https://g.co/AppIndexing/AndroidStudio for more information. 143 144 public Bitmap RadiusImage(Bitmap bm) { 145 int width = bm.getWidth(); 146 int height = bm.getHeight(); 147 int size = Math.min(width, height); 148 Bitmap clipArea = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 149 Canvas c = new Canvas(clipArea); 150 c.drawRoundRect(new RectF(0, 0, size, size), size, size, new Paint(Paint.ANTI_ALIAS_FLAG)); 151 Bitmap newImage = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); 152 Canvas canvas = new Canvas(newImage); 153 Paint paint = new Paint(); 154 canvas.drawBitmap(clipArea, 0, 0, paint); 155 paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); 156 canvas.drawBitmap(bm, new Rect(0, 0, size, size), new Rect(0, 0, size, size), paint); 157 return bitmap; 158 } 159 160}

と記載しました。

Java

1 if (iconurl != null) { 2 URL url = null; 3 try { 4 url = new URL(iconurl); 5 } catch (MalformedURLException e) { 6 e.printStackTrace(); 7 } 8 InputStream istream = null; 9 try { 10 istream = url.openStream(); 11 } catch (IOException e) { 12 e.printStackTrace(); 13 } 14 //読み込んだファイルをビットマップに変換 15 Bitmap oBmp = BitmapFactory.decodeStream(istream); 16 //ビットマップをImageButtonに設定 17 bitmap = RadiusImage(bitmap); 18 icon.setImageDrawable(null); 19 icon.setImageBitmap(bitmap); 20 //インプットストリームを閉じる 21 try { 22 istream.close(); 23 } catch (IOException e) { 24 e.printStackTrace(); 25 } 26 27 }

のところで該当処理をしています。
お願いします。

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

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

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

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

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

guest

回答1

0

そもそも、コンパイルできていないですよね。
AsyncTaskTestActivityは使っていないので消して良いと思います。

投稿2016/08/25 03:18

yona

総合スコア18155

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

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

退会済みユーザー

退会済みユーザー

2016/08/25 06:00

コンパイルできていないとはどういうことですか?Activityの方の if (iconurl != null) { URL url = null; try { url = new URL(iconurl); } catch (MalformedURLException e) { e.printStackTrace(); } InputStream istream = null; try { istream = url.openStream(); } catch (IOException e) { e.printStackTrace(); } //読み込んだファイルをビットマップに変換 Bitmap oBmp = BitmapFactory.decodeStream(istream); //ビットマップをImageButtonに設定 bitmap = RadiusImage(bitmap); icon.setImageDrawable(null); icon.setImageBitmap(bitmap); //インプットストリームを閉じる try { istream.close(); } catch (IOException e) { e.printStackTrace(); } } }  にだけ書けば良いということですか?その場合はどのような処理を書けば良いのでしょうか?
yona

2016/08/25 07:47

AsyncTaskTestActivityでfindViewByIdは使えないですよね。 現状は何ができて何ができていないのかを質問に追記してください。
退会済みユーザー

退会済みユーザー

2016/08/25 12:21

今ユーザーの情報をサーバーからURL形式で取得してくるところとそれをbitmap形に変換するところまでできました。それを非同期通信を使ってユーザーが自分のカメラロールの情報を反映させ、好きな画像に変更させられるようにしたいです。
yona

2016/08/25 12:27

Bitmapをどうしたいんですか、カメラロールに追加したいんですか。 画像をサーバーからとれているなら非同期通信はいらないですよね?
退会済みユーザー

退会済みユーザー

2016/08/25 13:05

サーバーから取得した画像のURLをbitmapに変換したいです。(すみません、まだ変換できてませんでした)そしてそのbitmapをimagebuttonにセットしimagebuttonでユーザーが自分の好きな画像に変更させられるようにしたいです。ツイッターのアイコンみたいな感じです。bitmapの定義の方法とbitmapをimagebuttonにセットする方法が知りたいです。
yona

2016/08/25 13:12

oBmpはBitmapになっていないんですか? また、ImageButton#setImageBitmapしている箇所は動いていないんですか?
退会済みユーザー

退会済みユーザー

2016/08/25 14:10

はい、動いていないです。非同期通信で画像取得するところを書きたいです。
yona

2016/08/25 14:53

前コメントの「Bitmap形に変換しているところまでできている」とはなんですか? サーバーとの通信ができていないんですか? このコードは全く動かないんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問