android自定义绘图控件,绘图所占画布比例过小

    xiaoxiao2021-04-12  35

    卫星分布图在画布中所在比例太小。可能和图片本身太小有关。

    原代码:

    ****************************************************************************************************************************************************************************************

    页面显示:

    gps_view_activity.xml

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     android:background="@color/satellites_bg"     >     <TextView android:id="@+id/gps_status_text"         android:layout_width="match_parent"         android:layout_height="wrap_content"           android:text="状态"/>              <TextView android:id="@+id/lonlat_text"         android:layout_width="match_parent"         android:layout_height="wrap_content"           android:text="0 0"/>     //自定义控件显示卫星分布状态图     <ylybbs.study.mygpstest.SatellitesView         android:id="@+id/satellitesView"         android:layout_width="match_parent"         android:layout_height="fill_parent" />      </LinearLayout>

    ====================================================================================================================================

    绘图java文件关键语句

    compassBitmap = BitmapFactory.decodeResource(res, R.drawable.bg_satellite); compassRadius = compassBitmap.getWidth() / 2;

    ****************************************************************************************************************************************************************************************

    改进JAVA文件代码:对进行

    compassBitmap = BitmapFactory.decodeResource(res, R.drawable.bg_satellite);

    //增加一个语句,对图进行放大

    compassBitmap = Bitmap.createScaledBitmap(compassBitmap,600,600,true);

    compassRadius = compassBitmap.getWidth() / 2;

    ***************************************************************************************************************************************************************************************

    效果图:

    ****************************************************************************************************************************************************************************************

    public static Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter) 函数用法:

    public static Bitmap createScaledBitmap (Bitmap src, int dstWidth, int dstHeight, boolean filter)

    从当前存在的位图,按一定的比例创建一个新的位图。

    参数

    src        用来构建子集的源位图

                     dstWidth   新位图期望的宽度

                     dstHeight  新位图期望的高度

           filter   如果是放大图片,filter决定是否平滑,如果是缩小图片,filter无影响

        返回值

                 一个新的按比例变化的位图。

    /**      * 修改图片的大小(从当前存在的位图,按一定的比例创建一个新的位图)<br>      * 方 法 名:createScaledBitmap <br>      * 创 建 人: <br>      * 创建时间:2016-6-7 上午9:14:47 <br>      * 修 改 人: <br>      * 修改日期: <br>      * @param bitmap 用来构建子集的源位图      * @param iconWidth 新位图期望的宽度      * @param iconHeight 新位图期望的高度      * @param filter 未知      * @return Bitmap 一个新的按比例变化的位图。      */      public static Bitmap createScaledBitmap(Bitmap bitmap, int iconWidth, int iconHeight, boolean filter) {          Bitmap bitmap2;          try {              bitmap2 = Bitmap.createScaledBitmap(bitmap, iconWidth, iconHeight, filter);          } catch (OutOfMemoryError localOutOfMemoryError) {              gc();              bitmap2 = Bitmap.createScaledBitmap(bitmap, iconWidth, iconHeight, filter);          }          return bitmap2;      } 
    转载请注明原文地址: https://ju.6miu.com/read-668151.html

    最新回复(0)