Android搜索栏遇到的问题记录

来源:互联网 发布:淘宝雪纺短袖衫 编辑:程序博客网 时间:2024/05/29 12:54

  学习Android有段时间了,现在才正式接触到style.xml这里, 在编写Android的搜索栏时遇到了一些问题在这里总结下:
  1、首先style.xml文件可以定义很多,比如说如果许多View有用相同的设置,可以直接在style.xml文件中定义一种style,然后在布局文件引用时直接style=”“就好了,如:

    <style name="editTextStyle">        <item name="android:layout_width">match_parent</item>        <item name="android:layout_height">wrap_content</item>        <item  name="android:background">@drawable/search_edit_bg</item>        <!--drawablepadding设置共处一个View内的对像的距离,不影响父View的边框-->        <item name="android:drawablePadding">5dp</item>        <item name="android:gravity">center_vertical</item>        <item name="android:imeOptions">actionSearch</item>        <item name="android:singleLine">true</item>        <item name="android:textSize">16sp</item>        <item name="android:padding">5dp</item><!--设置最外层View距边框的距离。-->        <item name="android:hint">Search</item>    </style>
  如果使用这个样式这样用:
        <EditText        style="@style/editTextStyle"        android:id="@+id/et_search"/>

  2、关于shape的使用,其中有好多属性现在都忘了,复习下:

<shape xmlns:android="http://schemas.android.com/apk/res/android">    <!--solid指的是填颜色-->    <solid android:color="@android:color/white"/>    <!--stroke指的是边框线,,这里定义了边框线颜色-->    <stroke        android:width="1px"        android:color="@android:color/darker_gray"/>        <!--conrners指是角的圆滑度-->    <corners android:radius="15dp"/>    <!--gradient设置的是颜色的渐变,angle指的是方向,当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。-->    <gradient android:startColor="#9cff00"             android:endColor="#197600"            android:angle="270"/>  </shape>  可参考:http://blog.csdn.net/lan410812571/article/details/9946991

3、如何修改drawable的图像的大小:

private Drawable zoomDrawable(Drawable drawable, int w, int h) {     //要注意这里的值都是以dp为单位的。        int width = drawable.getIntrinsicWidth();        int height = drawable.getIntrinsicHeight();        Log.d("XXXXX", width + " " + height);        Bitmap oldbmp = drawableToBitmap(drawable);        Matrix matrix = new Matrix();        float scaleWidth = ((float) w / width);        float scaleHeight = ((float) h / height);        matrix.postScale(scaleWidth, scaleHeight);        Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0,         width, height, matrix, true);        return new BitmapDrawable(null, newbmp);    }    private Bitmap drawableToBitmap(Drawable drawable) {        int width = drawable.getIntrinsicWidth();        int height = drawable.getIntrinsicHeight();        Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888                : Bitmap.Config.RGB_565;        Bitmap bitmap = Bitmap.createBitmap(width, height, config);        Canvas canvas = new Canvas(bitmap);        //setBounds是设置一个矩形区域,前两个是起始坐标,后两个是结束坐标        //坐标相对于父VIWE来说的        drawable.setBounds(0, 0, width, height);        drawable.draw(canvas);        return bitmap;    }
关于Drawable和Bitmap的知识,参考http://dyh7077063.iteye.com/blog/970672

  END

  
0 0
原创粉丝点击