MyPageActivityの投稿にある画像を表示可能に。
1 parent bc6990b commit ebb1ebc1a89e9464e97d8c6a5153fedfa2ef9247
d-matsuura authored on 17 Oct 2023
Showing 5 changed files
View
11
.idea/deploymentTargetDropDown.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\student\.android\avd\Pixel_2_API_30_2.avd" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<targetSelectedWithDropDown>
<Target>
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
View
113
app/src/main/java/com/example/nemophila/MyPageActivity.java
public class MyPageActivity extends AppCompatActivity {
private final ExecutorService executor = Executors.newSingleThreadExecutor();
private final Handler handler = new Handler();
private String iconUrlString;
private ImageView icon;
 
//MyPageActivity画面の作成
@Override
protected void onCreate(Bundle savedInstanceState) {
//初期化
Nemophila nemophila = (Nemophila) this.getApplication();
String uid = nemophila.getUid();
String name = nemophila.getName();
Bitmap icon = nemophila.getIcon();
String token = nemophila.getToken();
TextView myName = (TextView) findViewById(R.id.name);
myName.setText(name);
TextView id = (TextView) findViewById(R.id.id);
id.setText(uid);
 
//アイコンを表示する
icon = findViewById(R.id.icon);
iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/icon"+uid+".jpg";;
setIcon(icon);
ImageView iconView = findViewById(R.id.icon);
iconView.setImageBitmap(icon);
// iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/icon"+uid+".jpg";;
// setIcon(icon);
 
// 「閉じる」ボタンを押したときにメイン画面へ遷移する
Button closeButton = (Button) findViewById(R.id.close);
closeButton.setOnClickListener(new View.OnClickListener() {
myPageActDataset.clear();
for (Post post: Posts){
MyPageActDataModel data = new MyPageActDataModel();
data.setDate(post.getDate());
data.setName(post.getName());
data.setName(post.getShopName());
data.setGenre(post.getGenre());
//rateはintで受け取った評価に対応した星の数のStringに変換してセット
int intRate = post.getRate();
String strRate = "";
}
}
data.setRate(strRate);
data.setComment(post.getComment());
//画像がなければViewの表示をgoneに、あればvisibleにして画像をセット
executor.execute(() -> {
String[] imageUrls = new String[3];
Bitmap[] bitmaps = new Bitmap[3];
for(int i=1; i<=3; i++) {
imageUrls[i-1] = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/post_image"+ uid +"-" + post.getPid() +"-" + i +".jpg";
try {
URL image1Url = new URL(imageUrls[i - 1]);
HttpURLConnection con = (HttpURLConnection) image1Url.openConnection();
con.connect();
 
InputStream is = con.getInputStream();
bitmaps[i - 1] = BitmapFactory.decodeStream(is);
is.close();
con.disconnect();
} catch (Exception e) {
e.printStackTrace();
bitmaps [i-1] = null;
}
}
 
handler.post(() -> {
for(int i=1; i<=3; i++) {
if (i == 1) {
data.setImage1(bitmaps[i - 1]);
} else if (i == 2) {
data.setImage2(bitmaps[i - 1]);
} else if (i == 3) {
data.setImage3(bitmaps[i - 1]);
}
}
adapter.notifyDataSetChanged();
});
});
data.setPid(post.getPid());
myPageActDataset.add(data);
}
 
});
}
 
// アイコンに画像を設定
private void setIcon(ImageView iv) {
executor.execute(() -> {
try{
URL url = new URL(iconUrlString);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.connect();
 
InputStream is = con.getInputStream();
 
Bitmap bitmap = BitmapFactory.decodeStream(is);
handler.post(() -> iv.setImageBitmap(bitmap));
is.close();
con.disconnect();
}catch (Exception e){
e.printStackTrace();
iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
setIcon(iv);
}
});
}
// private void setIcon(ImageView iv) {
// executor.execute(() -> {
// try{
// URL url = new URL(iconUrlString);
// HttpURLConnection con = (HttpURLConnection) url.openConnection();
// con.connect();
//
// InputStream is = con.getInputStream();
//
// Bitmap bitmap = BitmapFactory.decodeStream(is);
// handler.post(() -> iv.setImageBitmap(bitmap));
// is.close();
// con.disconnect();
// }catch (Exception e){
// e.printStackTrace();
// iconUrlString = "http://nitta-lab-www.is.konan-u.ac.jp/nemophila-data/test01.jpg";
// setIcon(iv);
// }
// });
// }
 
/* ここからMyPageActivityの内部クラス */
 
// Adapter
holder.dateView.setText(list.get(position).getDate());
holder.rateView.setText(list.get(position).getRate());
holder.genreView.setText(list.get(position).getGenre());
holder.commentView.setText(list.get(position).getComment());
holder.imageView1.setImageBitmap(list.get(position).getImage1());
holder.imageView2.setImageBitmap(list.get(position).getImage2());
holder.imageView3.setImageBitmap(list.get(position).getImage3());
}
 
@Override
public int getItemCount() { return list.size(); }
public TextView dateView;
public TextView rateView;
public TextView genreView;
public TextView commentView;
public ImageView imageView1;
public ImageView imageView2;
public ImageView imageView3;
public ImageButton deleteButton;
 
public MyPageActViewHolder(@NonNull View view) {
super(view);
dateView = (TextView) view.findViewById(R.id.date);
rateView = (TextView) view.findViewById(R.id.rate);
genreView = (TextView) view.findViewById(R.id.genre);
commentView = (TextView) view.findViewById(R.id.comment);
imageView1 = (ImageView) itemView.findViewById(R.id.image1);
imageView2 = (ImageView) itemView.findViewById(R.id.image2);
imageView3 = (ImageView) itemView.findViewById(R.id.image3);
deleteButton = view.findViewById(R.id.deleteButton);
}
}
 
private String rate;
private String genre;
private String comment;
private String pid;
private Bitmap image1;
private Bitmap image2;
private Bitmap image3;
 
public String getName() { return name; }
public void setName(String name) { this.name = name; }
 
}
 
public String getPid() { return pid; }
public void setPid(String pid) { this.pid = pid; }
 
public Bitmap getImage1() { return image1; }
public void setImage1(Bitmap image1) {
this.image1 = image1;
}
 
public Bitmap getImage2() { return image2; }
public void setImage2(Bitmap image2) {
this.image2 = image2;
}
 
public Bitmap getImage3() { return image3; }
public void setImage3(Bitmap image3) {
this.image3 = image3;
}
}
}
View
app/src/main/java/com/example/nemophila/entities/Post.java
View
app/src/main/java/com/example/nemophila/entities/PostJson.java
View
app/src/main/res/layout/layout_my_page_activity_posts.xml