我正在创建与此类似的应用:
一小时的宽度以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);
答案 0 :(得分:1)
您可以使用<bitmap>
通过android:tileMode="repeat"
进行平铺(通过tiling the source drawable构建位图的一个示例)。
您可以通过一些工作来平铺<shape>
内的<bitmap>
。但是,我怀疑在<bitmap>
内平铺可绘制的图像更容易。
您可能希望使用9补丁来指定按钮的外观。您可以使用9个补丁使每个按钮都有一个薄的黑色边框。或者,您可以使用<shape>
drawable。
答案 1 :(得分:0)
如果您为LinearLayout
提供黑色背景色,则只需要输入
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
或每个RelativeLayout
行中的一些此类金额,LinearLayout
将显示在这些区域中,看起来就像我在示例中看到的那样。
或者,如果您希望每行上的一个项目不显示marginTop
和marginBottom
,就像左侧的那些彩色按钮一样,那么这些视图会比那些更高一些右边,使RelativeLayouts
的重力垂直居中,你会看到短视图上方和下方的黑色。