android应用程序界面UI详解(4)

2019-03-22 16:10

9 int color = context.getResources().getColor(R.color.window_background); //从资源读取背景色 10

11 Bitmap centered = Bitmap.createBitmap(bitmapWidth < width ? width : bitmapWidth, 12

13 bitmapHeight < height ? height : bitmapHeight, Bitmap.Config.RGB_565); 14

15 centered.setDensity(bitmap.getDensity()); 16

17 Canvas canvas = new Canvas(centered); 18

19 canvas.drawColor(color); //先绘制背景色 20

21 canvas.drawBitmap(bitmap, (width - bitmapWidth) / 2.0f, (height - bitmapHeight) / 2.0f,null); //通过Canvas绘制Bitmap 22

23 bitmap = centered; 24 25 } 26

27 return bitmap; //返回新的bitmap 28 29 } 30 31

本段代码从Android 2.1开始将会应用在全新的Home主屏上,同时相关的ImageView的适应屏幕大小的setScaleType(fitCenter) 方法类似,仅仅是我们制定了未来的大小。

GraphableButton类实现Android UI开发

从Android 1.6开始,系统设置中的电池使用记录提供了一种简单的自绘Button按钮演示-GraphableButton类,通过GraphableButton我们可以很清晰的了解到前几次Android123讲到的UI开发要点。

1 public class GraphableButton extends Button { //从Button类继承 2

3 private static final String TAG = \4

5 static Paint[] sPaint = new Paint[2]; //定义两种颜色 6

7 static { 8

9 sPaint[0] = new Paint(); 10

11 sPaint[0].setStyle(Paint.Style.FILL); 12

13 sPaint[0].setColor(0xFF0080FF); 14

15 sPaint[1] =

new Paint(); 16

17 sPaint[1].setStyle(Paint.Style.FILL); 18

19 sPaint[1].setColor(0xFFFF6060); 20 21 } 22

23 double[] mValues; 24

25 public GraphableButton(Context context, AttributeSet attrs) { 26

27 super(context, attrs); 28 29 } 30

31 public void setValues(double[] values, double maxValue) { //设置显示范围,下文提到 32

33 mValues = values.clone(); 34

35 for (int i =

0; i < values.length; i++) { 36

37 mValues/= maxValue; 38 39 } 40 41 } 42

43 @Override 44

45 public void onDraw(Canvas canvas) { //重写onDraw直接绘制 46

47 Log.i(TAG, \+ getWidth() + \+ getHeight()); 48

49 int xmin = getPaddingLeft(); 50

51 int xmax = getWidth() - getPaddingRight(); 52

53 int ymin = getPaddingTop(); 54

55 int ymax = getHeight() - getPaddingBottom(); 56

57 int startx = xmin; 58

59 for (int i =

0; i < mValues.length; i++) { 60

61 int endx = xmin + (int) (mValues * (xmax - xmin)); 62

63 canvas.drawRect(startx, ymin, endx, ymax, sPaint); //通过canvas绘制范围 64

65 // 该方法原型 drawRect(float left, float top, float right, float bottom, Paint paint) 66

67 startx = endx;

68 69 } 70

71 super.onDraw(canvas); 72 73 } 74 75 } 76

调用方法很简单,和普通的Button没有什么区别,这里我们仅仅多定义了setValues方法,Android开发网提醒网哟注意布局文件xml中如何定义,在最下文 1 private GraphableButton mButtons; 2

3 mButtons = (GraphableButton) findViewById(R.id.button0); 4

5 mButtons.setOnClickListener(this); //设置一个按下事件监听 6

7 mButtons.setVisibility(View.INVISIBLE); //设置当前按钮不可见 8

9 mButtons.setText(\欢迎您\10

11 mButtons.setValues(0,100); 12

13 mButtons.setVisibility(View.VISIBLE); //设置按钮可见 14

下面在layout.xml中如何写呢,这里要写上自己程序完整的package name才能正确被adt识别,相关的具体定义如下:

1 android:id=\2

3 android:layout_width=\4

5 android:layout_height=\6

7 android:layout_marginLeft=\8

9 android:layout_marginRight=\10

11 android:layout_marginBottom=\12

13 android:layout_weight=\/>


android应用程序界面UI详解(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福安市博物馆·历史展厅前言、结束语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: