我正在创建与此类似的应用程序:
一小时的宽度以 dp 表示。如何创建这种划分(按边框或不同颜色)的背景?我虽然关于插入 ImageViews 但有更好的方法吗?目前我的布局:
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/horizontalScrollView1" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:id="@+id/tableLayout" android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="vertical">
<RelativeLayout android:id="@+id/tableRowLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content"></RelativeLayout>
<RelativeLayout android:id="@+id/tableRowLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content"></RelativeLayout>
</LinearLayout>
</HorizontalScrollView>
我将元素插入到相对布局中。
感谢帮助。
解决方案
HorizontalScrollView mainView = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
int height = size.y;
int width = dpToPixels(dpPerHour);
Bitmap bmpBg = ((BitmapDrawable) getResources().getDrawable(R.drawable.schedule_bg)).getBitmap();
Bitmap scaled = Bitmap.createScaledBitmap(bmpBg, width, height, true);
BitmapDrawable viewBg = new BitmapDrawable(getResources(), scaled);
viewBg.setTileModeX(TileMode.REPEAT);
viewBg.setGravity(Gravity.LEFT);
mainView.setBackground(viewBg);