當前位置:首頁 » 安卓系統 » 如何畫安卓

如何畫安卓

發布時間: 2022-02-03 22:13:31

1. 如何用PS畫Android機器人

下載個圖片,做背景,然後用新的圖層描出籠括,上色

2. Android Activity是怎麼畫出來的

參考如下過程:
時設置風格。
3.setContentView()方法中會建立DecorView對象,之後會調用generateLayout(),這個方法中首先根據之前設置的風格來制定風格,默認是加入一個LinearLayout的布局,其中有2個FrameLayout的布局,一個是title(子布局是TextView),另一個是id 為: Android:id="@android:id/content",我們setContentView時的布局將加再這里。
4.在將DecorView addView()到window中時,addView()中創建了一個對象ViewRoot,ViewRoot其實就一個Handle,它會掉用scheleTraversals()發送一個message(這個message被Loop取出給ViewRoot中的handleMessage里的一個方法),這個方法是就performTraversals(),也就是啟動了繪畫流程,這個方法裡面會分別調用measure、layout、draw。
5.draw 函數:

3. 怎麼用Android畫一個正方形

先來介紹一下畫幾何圖形要用到的,畫布(Canvas)、畫筆(Paint)。
1. 畫一個圓使用的是drawCircle:canvas.drawCircle(cx, cy, radius, paint);x、y代表坐標、radius是半徑、paint是畫筆,就是畫圖的顏色;
2. 在畫圖的時候還要有注意,你所畫的矩形是實心(paint.setStyle(Paint.Style.FILL))還是空心(paint.setStyle(Paint.Style.STROKE);
畫圖的時候還有一點,那就是消除鋸齒:paint.setAntiAlias(true);
3. 還有就是設置一種漸變顏色的矩形:
Shader mShader = new LinearGradient(0,0,100,100, new int[]{Color.RED,Color.GREEn,Color.BLUE,Color.YELLO},null,Shader.TileMode.REPEAT);
ShapeDrawable sd;
//畫一個實心正方形
sd = new ShapeDrawable(new RectShape());
sd.setBounds(20,20,100,100);
sd.draw(canvas);
//一個漸變色的正方形就完成了

4. 正方形:drawRect:canvas.drawRect(left, top, right, bottom, paint)
這里的left、top、right、bottom的值是:
left:是矩形距離左邊的X軸
top:是矩形距離上邊的Y軸
right:是矩形距離右邊的X軸
bottom:是矩形距離下邊的Y軸
5. 長方形:他和正方形是一個原理,這個就不用說了
6. 橢圓形:記住,這里的Rectf是float類型的
RectF re = new Rect(left, top, right, bottom);
canvas.drawOval(re,paint);

好了,說了這么多的的東西,那就讓我們來看一下真正的實例吧!!!
package com.hades.game;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class CanvasActivity extends Activity {
/**
* 畫一個幾何圖形
* hades
* 藍色著衣
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView myView = new MyView(this);
setContentView(myView);
}
public class MyView extends View {
public MyView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 設置畫布的背景顏色
canvas.drawColor(Color.WHITE);
/**
* 定義矩形為空心
*/
// 定義畫筆1
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
// 消除鋸齒
paint.setAntiAlias(true);
// 設置畫筆的顏色
paint.setColor(Color.RED);
// 設置paint的外框寬度
paint.setStrokeWidth(2);
// 畫一個圓
canvas.drawCircle(40, 30, 20, paint);
// 畫一個正放形
canvas.drawRect(20, 70, 70, 120, paint);
// 畫一個長方形
canvas.drawRect(20, 170, 90, 130, paint);
// 畫一個橢圓
RectF re = new RectF(20, 230, 100, 190);
canvas.drawOval(re, paint);
/**
* 定義矩形為實心
*/
paint.setStyle(Paint.Style.FILL);
// 定義畫筆2
Paint paint2 = new Paint();
// 消除鋸齒
paint2.setAntiAlias(true);
// 設置畫筆的顏色
paint2.setColor(Color.BLUE);
// 畫一個空心圓
canvas.drawCircle(150, 30, 20, paint2);
// 畫一個正方形
canvas.drawRect(185, 70, 130, 120, paint2);
// 畫一個長方形
canvas.drawRect(200, 130, 130, 180, paint2);
// 畫一個橢圓形
RectF re2 = new RectF(200, 230, 130, 190);
canvas.drawOval(re2, paint2);
}
}
}

4. android 裡面怎麼畫表格呢

public class GameView extends View {

private int firstX = 15; // 起始點x
private int firstY = 15; // 起始點y
private int secondX = 70; // 第二點x
private int secondY = 70; // 第二點y
private int widthNum = 8; // 列
private int heightNum = 9; // 行
private int secondSideX = 60; // 第二列的寬
private int sideY = 50; // 行高
private int firstSidesX = 60; // 第一列的寬

public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
drawForm(canvas);
}

private void drawForm(Canvas canvas) {
Paint paint = new Paint();

paint.setAntiAlias(true);
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(2);
paint.setStyle(Paint.Style.FILL);

paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
int cellX, cellY, cellBX, cellBY;

for (int i = 0; i < widthNum; i++)

for (int j = 0; j < heightNum; j++) {
if(0 == i) { // 如果是第一列 寬度為firstSidesX
cellX = firstX + i * firstSidesX;
cellY = firstY + j * sideY;
cellBX = firstX + (i + 1) * firstSidesX;
cellBY = firstY + (j + 1) * sideY;
}else{
cellX = secondX + (i - 1) * secondSideX;
cellY = secondY + (j - 1) * sideY;
cellBX = secondX + i * secondSideX;
cellBY = secondY + j * sideY;
}

canvas.drawRect(cellX, cellY, cellBX, cellBY, paint);
int cellsNum = i + j * widthNum;
drawColorText(canvas, cellX, cellY, cellBX, cellBY, cellsNum);
}
}

5. android怎麼畫豎線

寬度設置1dp,高度看UI情況,這是最簡單的,還有就是通過canvas畫。

6. android如何畫一條動態直線

android畫一條動態直線實現思路:

一個主view類(一個自定義view),在主view類中定義了統一的paint、bitmap、canvas,以及子類中需要用到的3個點downPoint,movePoint,upPoint。

其他子類(畫直線的view、畫矩形的view····)都是繼承這個主view類。

在每次選擇形狀的時候:

1、實例化一個view類;

2、將view類加入到當前activity;

畫每一種形狀都是在自己的view上進行,新加進來的view覆蓋前面的view。

每個子類中都有方法onTouchEvent()執行自己的操作;

具體實現代碼;

public boolean onTouchEvent(MotionEventevent) {

switch(event.getAction()){

caseMotionEvent.ACTION_DOWN:

caseMotionEvent.ACTION_MOVE:

caseMotionEvent.ACTION_UP:

}

return true;

}

7. 在android中如何畫一條虛線

使用paint來畫。

Paint paint = new Paint ( ) ;
paint.setColor ( Color.BLACK ) ;
//設置畫直線格式
paint.setStyle ( Paint.Style.STROKE ) ;
//設置虛線效果
paint.setPathEffect ( new DashPathEffect ( new float [ ] { 3, 2 }, 0 ) ) ;
最後這句是設置虛線效果,里邊的float數組的意思是:先畫長度為3的實線,再間隔長度為2的空白,之後一直重復這個單元。這個數組的長度只要大於等於2就行,你可以設置多個數值,產生不同效果,最後這個0指的是與起始位置的偏移量。

8. 如何用android 畫出三角形

。支支吾吾也沒說出來,哎,回家一想太可氣 了,就找到方法。原來是android.graphics.Path這個類,實現的。Api里的描述如下:The Path class encapsulates compound (multiple contour) geometric paths consisting of straight line segments, quadratic curves, and cubic curves. It can be drawn with canvas.drawPath(path, paint), either filled or stroked (based on the paint's Style), or it can be used for clipping or to draw text on a path. 它大概的意思是說path類包含了多種組件,比如直線段,二次曲線,三次曲線,它可以在畫布上繪制,無論是填充或筆畫。下面舉例說明: package cn.lgl.draw; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.LinearGradient; import android.graphics.Paint; import android.graphics.Path; import android.graphics.RectF; import android.graphics.Shader; import android.view.View; public class MyView extends View { public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); /*設置背景為白色*/ canvas.drawColor(Color.WHITE); Paint paint=new Paint(); /*去鋸齒*/ paint.setAntiAlias(true); /*設置paint的顏色*/ paint.setColor(Color.RED); /*設置paint的 style 為STROKE:空心*/ paint.setStyle(Paint.Style.STROKE); /*設置paint的外框寬度*/ paint.setStrokeWidth(3); /*畫一個空心三角形*/ Path path=new Path(); path.moveTo(10,330); path.lineTo(70,330); path.lineTo(40,100); path.close(); canvas.drawPath(path, paint); /*設置paint 的style為 FILL:實心*/ paint.setStyle(Paint.Style.FILL); /*設置paint的顏色*/ paint.setColor(Color.BLUE); /*畫一個實心三角形*/ Path path2=new Path(); path2.moveTo(90,330); path2.lineTo(150,330); path2.lineTo(120,270); path2.close(); canvas.drawPath(path2, paint); Shader mShader=new LinearGradient(0,0,100,100, new int[]{Color.RED,Color.GREEN,Color.BLUE,Color.YELLOW}, null,Shader.TileMode.REPEAT); paint.setShader(mShader); /*畫一個漸變色三角形*/ Path path4=new Path(); path4.moveTo(170,330); path4.lineTo(230,330); path4.lineTo(200,270); path4.close(); canvas.drawPath(path4,paint); } }

9. android 百度地圖上怎麼畫線,畫圓

//代碼如下
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.Paint.Style;
importandroid.graphics.Path;
importandroid.graphics.Point;
importandroid.os.Bundle;
importcom..mapapi.BMapManager;
importcom..mapapi.GeoPoint;
importcom..mapapi.MapActivity;
importcom..mapapi.MapController;
importcom..mapapi.MapView;
importcom..mapapi.Overlay;
importcom..mapapi.Projection;

{
privateContextmContext;
privateMapViewmapView;
@Override
(){
//TODOAuto-generatedmethodstub
returnfalse;
}
privateGeoPointgpoint1,gpoint2,gpoint3;//連線的點
@Override
protectedvoidonCreate(Bundlearg0){
super.onCreate(arg0);
setContentView(R.layout.map_layout);

BaseApplicationbaseApp=(BaseApplication)this.getApplication();
if(baseApp.mBMapManage==null){
baseApp.mBMapManage=newBMapManager(mContext);
baseApp.mBMapManage.init(baseApp.mStrKey,
newBaseApplication.MyGeneralListener());
}
baseApp.mBMapManage.start();
super.initMapActivity(baseApp.mBMapManage);//初始化mapsdk
mapView=(MapView)findViewById(R.id.bmapView);
mapView.setBuiltInZoomControls(true);
//設置在縮放動畫過程中也顯示overlay,默認為不繪制
mapView.setDrawOverlayWhenZooming(true);

//RouteLinerouteLine=
//(RouteLine)getIntent().getSerializableExtra("routeLine");

//這里畫點和連接線
MyOverlaymyOverlay=newMyOverlay();
mapView.getOverlays().add(myOverlay);

MapControllermapController=mapView.getController();
mapController.zoomIn();

gpoint1=newGeoPoint((int)(2259316*10),
(int)(11396279*10));
gpoint2=newGeoPoint((int)(2259245*10),
(int)(11396226*10));
gpoint3=newGeoPoint((int)(2259121*10),
(int)(11396066*10));
mapController.animateTo(gpoint1);//設置一個起點
}

classMyOverlayextendsOverlay{

@Override
publicvoiddraw(Canvascanvas,MapViewmapView,booleanshadow){
super.draw(canvas,mapView,shadow);

Projectionprojection=mapView.getProjection();
Pointp1=newPoint();
Pointp2=newPoint();
Pointp3=newPoint();
//經度轉像素
projection.toPixels(gpoint1,p1);
projection.toPixels(gpoint2,p2);
projection.toPixels(gpoint3,p3);

//第一個畫筆畫圓
PaintfillPaint=newPaint();
fillPaint.setColor(Color.BLUE);
fillPaint.setAntiAlias(true);
fillPaint.setStyle(Style.FILL);

//將圖畫到上層
canvas.drawCircle(p1.x,p1.y,5.0f,fillPaint);
canvas.drawCircle(p2.x,p2.y,5.0f,fillPaint);
canvas.drawCircle(p3.x,p3.y,5.0f,fillPaint);

//第二個畫筆畫線
Paintpaint=newPaint();
paint.setColor(Color.BLUE);
paint.setDither(true);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setStrokeWidth(4);

//連接
Pathpath=newPath();
path.moveTo(p1.x,p1.y);
path.lineTo(p2.x,p2.y);
path.lineTo(p3.x,p3.y);
//畫出路徑
canvas.drawPath(path,paint);
}
}

}

10. android 里用shape畫圓,怎麼填充顏色

為你其中提供一種解決方案:
android;msg_new_counter"22"
android;
android;20dp"
android;>.com/apk/res/android"0dp" android;
android;
android;
android;utf-8".android;/://schemas;TextView
android; /:width="shape xmlns;top|center_horizontal".com/apk/res/android" target="_blank">http.0":background="3dp":text=":layout_height="bold" android;false"
android:textColor="ring"solid android;>
android;bg_have_msg".android://schemas;wrap_content":layout_width=";2":layout_marginTop="8sp":shape="stroke android; encoding="1;
android;3dp"
android;
<:id="
android;
<

2;#ffffff":useLevel="wrap_content"?xml version=":innerRadiusRatio=":textSize="#ff0000">@+id/1"
<
android;
android:color=":layout_marginLeft="#ff0000"
android:thicknessRatio=":color=".資源文件

<?>:textStyle="/ /:innerRadius=":padding=":android=">
<

在android studio的布局預覽里顯示正常(紅底白字的圓):thickness="
android布局文件

<1dp"

熱點內容
我的世界正版好玩的pvp伺服器 發布:2024-04-19 16:28:38 瀏覽:17
光遇安卓渠道服怎麼更換實名認證 發布:2024-04-19 16:18:08 瀏覽:263
關閉ip訪問 發布:2024-04-19 15:59:18 瀏覽:730
大屏安卓系統哪個好 發布:2024-04-19 15:49:10 瀏覽:792
解壓瀏覽器 發布:2024-04-19 15:39:22 瀏覽:575
pythonutfgbk 發布:2024-04-19 15:32:20 瀏覽:221
騰訊雲伺服器搭建網站打不開 發布:2024-04-19 15:32:15 瀏覽:967
光遇腳本輔助下載免費ios 發布:2024-04-19 15:22:11 瀏覽:243
表格VB腳本 發布:2024-04-19 15:13:07 瀏覽:780
python生成器表達式 發布:2024-04-19 15:12:10 瀏覽:747