中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發中如何理解RadioButton及路徑繪制

發布時間:2021-11-26 16:13:24 來源:億速云 閱讀:157 作者:柒染 欄目:移動開發

這篇文章將為大家詳細講解有關Android開發中如何理解RadioButton及路徑繪制,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

這個例子是繪制多邊形,多義形和路徑,采用單選鈕RadioButton來選擇Polys 和Path示例:

UI 設計為 上部分用來顯示繪圖內容,下部分為兩個單選按鈕 Polys ,Path。這樣layout就和main.xml  不一樣,main.xml只含一個com.pstreets.graphics2d.GuidebeeGraphics2DView。因此需在 res\layout下新建一個polys.xml:

<?xml version=”1.0&Prime; encoding=”utf-8&Prime;?> <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”     android:orientation=”vertical”     android:background=”@drawable/white”  android:layout_width=”fill_parent”  android:layout_height=”fill_parent”>     <com.pstreets.graphics2d.GuidebeeGraphics2DView      android:id=”@+id/graphics2dview”      android:layout_weight=”1&Prime;      android:layout_width=”fill_parent”      android:layout_height=”wrap_content”/>  <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”   android:layout_width=”wrap_content” android:layout_height=”wrap_content”   android:orientation=”horizontal”      >   <RadioGroup      android:layout_width=”wrap_content”      android:orientation=”horizontal”      android:textSize=”20dp”      android:layout_height=”wrap_content”>    <RadioButton android:text=”Polys”        android:id=”@+id/radioPolys”     android:layout_width=”wrap_content”     android:textColor=”@color/black”     android:checked=”true”     android:layout_height=”wrap_content”>    </RadioButton>    <RadioButton android:text=”Path”         android:id=”@+id/radioPath”     android:layout_width=”wrap_content”     android:textColor=”@color/black”     android:layout_height=”wrap_content”>    </RadioButton>   </RadioGroup>  </LinearLayout>  </LinearLayout>

RadioButton 需包含在RadioGroup中做為一個分組,這里將Polys 設為選中。

定義好Layout資源后,修改 Path.java

private RadioButton radioPoly;     private RadioButton radioPath;        public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.polys);      graphic2dView       = (GuidebeeGraphics2DView)         findViewById(R.id.graphics2dview);      radioPath = (RadioButton) findViewById(R.id.radioPath);      radioPoly = (RadioButton) findViewById(R.id.radioPolys);      radioPath.setOnClickListener(this);      radioPoly.setOnClickListener(this);     }

應為需要處理按鍵消息,所以定義了兩個RadioButton對象,可以通過findViewById獲取實例。因為兩個RadioButton這里采用 同樣的處理方法,可以讓Path實現OnClickListener ,即:public class Path extends  Graphics2DActivity   implements OnClickListener。完整代碼如下:

1   public class Path extends Graphics2DActivity 2      implements OnClickListener { 3     4       private RadioButton radioPoly; 5       private RadioButton radioPath; 6     7       public void onCreate(Bundle savedInstanceState) { 8           super.onCreate(savedInstanceState); 9           setContentView(R.layout.polys); 10          graphic2dView 11           = (GuidebeeGraphics2DView) 12             findViewById(R.id.graphics2dview); 13          radioPath = (RadioButton) findViewById(R.id.radioPath); 14          radioPoly = (RadioButton) findViewById(R.id.radioPolys); 15          radioPath.setOnClickListener(this); 16          radioPoly.setOnClickListener(this); 17      } 18    19      @Override 20      protected void drawImage() { 21          if (radioPoly.isChecked()) { 22              drawPolys(); 23          } else { 24              drawPaths(); 25          } 26          graphic2dView.refreshCanvas(); 27    28      } 29    30      @Override 31      public void onClick(View view) { 32          drawImage(); 33      } 34    35      private void drawPaths() { 36          AffineTransform mat1; 37    38          // The path. 39          com.mapdigit.drawing.geometry.Path path; 40    41          // Colors 42          Color redColor = new Color(0x96ff0000, true); 43          Color greenColor = new Color(0xff00ff00); 44          Color blueColor = new Color(0x750000ff, true); 45    46          String pathdata 47             = "M 60 20 Q -40 70 60 120 Q 160 70 60 20 z"; 48          mat1 = new AffineTransform(); 49          mat1.translate(30, 40); 50          mat1.rotate(-30 * Math.PI / 180.0); 51          path = com.mapdigit.drawing.geometry.Path.fromString(pathdata); 52          // Clear the canvas with white color. 53          graphics2D.clear(Color.WHITE); 54    55          graphics2D.setAffineTransform(new AffineTransform()); 56          SolidBrush brush = new SolidBrush(greenColor); 57          graphics2D.fill(brush, path); 58          graphics2D.setAffineTransform(mat1); 59    60          brush = new SolidBrush(blueColor); 61          com.mapdigit.drawing.Pen pen 62             = new com.mapdigit.drawing.Pen(redColor, 5); 63          graphics2D.setPenAndBrush(pen, brush); 64          graphics2D.draw(null, path); 65          graphics2D.fill(null, path); 66    67      } 68    69      private void drawPolys() { 70          AffineTransform mat1; 71    72          // Colors 73          Color redColor = new Color(0x96ff0000, true); 74          Color greenColor = new Color(0xff00ff00); 75          Color blueColor = new Color(0x750000ff, true); 76    77          Polyline polyline; 78          Polygon polygon; 79          Polygon polygon1; 80    81          String pointsdata1 82          = "59,45,95,63,108,105,82,139,39,140,11,107,19,65"; 83          mat1 = new AffineTransform(); 84          mat1.translate(30, 40); 85          mat1.rotate(-30 * Math.PI / 180.0); 86          polyline = new Polyline(); 87          polygon = new Polygon(); 88          polygon1 = new Polygon(); 89          Point[] points = Point.fromString(pointsdata1); 90          for (int i = 0; i < points.length; i++) { 91              polyline.addPoint(points[i].x, points[i].y); 92              polygon.addPoint(points[i].x, points[i].y); 93              polygon1.addPoint(points[i].x, points[i].y); 94          } 95          // Clear the canvas with white color. 96          graphics2D.clear(Color.WHITE); 97    98          graphics2D.setAffineTransform(new AffineTransform()); 99          SolidBrush brush = new SolidBrush(greenColor); 100         graphics2D.fillPolygon(brush, polygon); 101         graphics2D.setAffineTransform(mat1); 102   103         brush = new SolidBrush(blueColor); 104         com.mapdigit.drawing.Pen pen 105            = new com.mapdigit.drawing.Pen(redColor, 5); 106         graphics2D.setPenAndBrush(pen, brush); 107         graphics2D.fillPolygon(null, polygon1); 108         graphics2D.drawPolyline(null, polyline); 109   110     } 111   112 }

Android開發中如何理解RadioButton及路徑繪制

關于Android開發中如何理解RadioButton及路徑繪制就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

禄劝| 邵阳县| 翁牛特旗| 清涧县| 中卫市| 平江县| 新泰市| 昌黎县| 峨山| 广饶县| 肥乡县| 边坝县| 通榆县| 新疆| 凭祥市| 静海县| 吉林省| 万载县| 新化县| 库尔勒市| 深圳市| 资溪县| 颍上县| 武义县| 乌兰浩特市| 贵港市| 绩溪县| 云林县| 息烽县| 莱芜市| 精河县| 安平县| 林芝县| 马鞍山市| 天津市| 惠东县| 通辽市| 乌什县| 五河县| 大足县| 永吉县|