安卓Android面试题Android面试宝典Android面试经验

Android面试简录——组件

2015-04-03  本文已影响1213人  nancymi

组件所在包:android.widget


组件的属性

【拓展】android:id属性值
设置方法:
1.@id/属性值,该属性已在R类中定义;
2.@+id/属性值,该属性没有事先定义。【建议使用】

【个人发现】加了layout_这个属性就是设置组件与组件级别的,没加就是设置组件内级别的。(如果有例外的话请告诉我=。=)

【拓展】分别设置上、下、左、右4个方向的间隔距离
1.android:paddingandroid:layout_margin会同时设置上下左右的距离。
2.android:paddingTop,android:paddingBottom,android:paddingLeft,android:paddingRight分别设置组件内上下左右的间隔距离。
3.android:layout_marginTop,android:layout_mrginBottom,android:layout_marginLeft,android:layout_marginRight分别设置组件间上下左右的间隔距离。


文本组件

【拓展】 在TextView中显示图像的办法

  1. 使用<img>标签
    CharSequence charSequence = Html.fromHtml(html, new ImageGetter() {
    @Override
    public Drawable getDrawable(String source) {
    Drawable drawable = getResources().getDrawable(getResourceId(source));
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    return drawable;
    }
    }, null);
    textView.setText(charSequence);
  2. 使用ImageSpan对象
    Bitmap bitmap = BitmapFacttory.decodeResource(getResources(), R.drawable.icon);
    ImageSpan imageSpan = new ImageSpan(this, bitmap);
    SpannableString spannableString = new SpannableString("icon");
    spannableString.setSpan(imageSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(spannableString);

【拓展】在EditText组件中插入表情图像?
只需要将以上在使用TextView对象插入富文本改为使用EditText对象即可。


按钮组件

【拓展】drawable资源
drawable资源可以存储普通的图像资源,还可以存储XML图像资源:
1.图像状态资源:如上
2.淡入淡出资源:如下
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/lamp_off"/>
<item android:drawable="@drawable/lamp_on"/>
</transition>
3.图像级别资源:如下
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/lamp_off"
android:minLevel="6"
android:maxLevel="10"
/>
<item
android:drawable="@drawable/lamp_on"
android:minLevel="12"
android:maxLevel="20"
/>
</level-list>
在Java文件中使用setImageLevel或setLevel设置级别在某个区间,系统就会先使用那个区间的图像。


图像组件


进度组件

【拓展】实现更绚丽的进度条
layer-listShape资源结合,实现更绚丽的进度条。
设置圆角和渐变色效果:

  <? xml version="1.0" encoding="utf-8" ?>
  <layer-list xmlns:android="http://schema.android.com/apk/res/android" >
      <item android:id="@android:id/background" >
          <shape>
              <corners android:radius="10dp" />
              <gradient
                  android:startColor="#FFFF0000"
                  android:centerColor="#FF880000"
                  android:centerY="0.75"
                  android:endColor="#FF110000"
                  android:angle="270" />
          </shape>
      </item>
      <item android:id="@android:id/secondaryProgress" >
          <clip>
              <shape>
                  <corners android:radius="10dp" />
                  <gradient
                      android:startColor="#FF00FF00"
                      android:centerColor="#FF00FF00"
                      android:centerY="0.75"
                      android:endColor="FF00FF00"
                      android:angle="270" />
              </shape>
          </clip>
      </item>
      <item android:id="@android:id/progress" >
          <clip>
              <shape>
                  <corner android:radius="10dp" />
                  <gradient
                      android:startColor="#ffffd300"
                      android:centerColor="#ffffb600"
                      android:centerY="0.75"
                      android:endColor="#ffffcb00"
                      android:angle="270" />
              </shape>
          </clip>
      </item>
  </layer-list>

列表组件


容器组件


【后记】组件真的是太多了...下个文记述自定义组件和四大应用程序组件。

上一篇下一篇

猜你喜欢

热点阅读