ボタン、イメージビュー、ビエドビューでスクロールビューを作ろうとしています。
コードから動的に作成します。
動画付きのボタンを付けると、両方見れます。ボタンとimageViewと同じです。
私の問題は、videView と imageView がある場合です。両方あると、VidoView が表示されず、imageView しか表示されません。
助けてくれてありがとう:)
これが私のコードです:
XML スクロールビュー コード:
<ScrollView
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:fillViewport="true" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/dateMain"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
</LinearLayout>
</RelativeLayout>
</ScrollView>
私のJavaコード:
private void addPics() {
extras = getIntent().getExtras();
String s = extras.getString("date");
DataBaseMain data = new DataBaseMain(this);
data.open();
paths = data.getWorkOutPic(s);
data.close();
if(paths == null || paths.length < 1)
return;
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
for(int i = 0; i < paths.length; i++){
Bitmap yourSelectedImage = BitmapFactory.decodeFile(paths[i]);
ImageButton pic = new ImageButton(this);
pic.setImageBitmap(yourSelectedImage);
pic.setAdjustViewBounds(true);
pic.setLayoutParams(lp);
pic.setId(i);
pic.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View arg0) {
selectedPictrue = arg0.getId();
onButtonClickEvent(arg0);
return true;
}
});
linear.addView(pic);
}
}
private void addVideos() {
extras = getIntent().getExtras();
String s = extras.getString("date");
DataBaseMain data = new DataBaseMain(this);
data.open();
videos = data.getWorkOutVideo(s);
data.close();
if(videos == null || videos.length < 1)
return;
LinearLayout linear = (LinearLayout) findViewById(R.id.dateMain);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
LayoutParams lp2 = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
for(int i = 0; i < videos.length; i++){
Button b = new Button(this);
b.setLayoutParams(lp2);
b.setText("Delete video");
b.setId(i+50);
linear.addView(b);
b.setOnClickListener(this);
VideoView video = new VideoView(this);
video.setVideoPath(videos[i]);
video.setLayoutParams(lp);
video.setId(i+50);
video.setMediaController(new MediaController(this));
video.bringToFront();
linear.addView(video);
}
}
public void setLogView(String date){
DataBaseMain dataBase = new DataBaseMain(this);
dataBase.open();
all = dataBase.dayLog(date);
dataBase.close();
if (all == null || all[0].length < 1 || all[3][0] == null || all[3][0].equals(""))
return;
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
for (int i = 0; i < all[0].length; i++){
String temporay = "";
for(int j = 0; j < all.length; j++)
{
temporay = temporay + " " + all[j][i];
}
Button mine = new Button(this);
mine.setText(temporay);
mine.setTextColor(getResources().getColor(R.color.black));
mine.setBackgroundColor(color.transparent);
mine.setLayoutParams(lp);
mine.setId(i);
mine.setOnClickListener(this);
linear.addView(mine);
//Toast.makeText(this, ""+i, Toast.LENGTH_SHORT).show();
}
}