導航:首頁 > 操作系統 > android畫線

android畫線

發布時間:2022-02-10 04:02:14

『壹』 android 使用canvas畫線,如何保證快速畫出圓滑的曲線

[mw_shl_code=java,true] RectF rect = new RectF(0, 0, radii, radii); // 圓形弧度需要的區域(左上角的x,y坐標 ,及右下角x,y坐標) Paint paint = new Paint(); paint.setColor(r.getColor(R.color.bg_color_1)); canvas.drawCircle(radii/2, radii/2, radii/2, paint);[/mw_shl_code]

『貳』 android已知兩點坐標怎麼畫直線

在android的體系中,畫圖用的是Canvas和Paint來實現的,你可以調用裡面的方法來畫任何你想要的圖形。

『叄』 android怎麼在字上劃一條線,如圖

代碼如下:

Stringstring="市場價:¥158.00";

TextViewtextView=(TextView)findViewById(R.id.textView);

SpannableStringsp=newSpannableString(string);

sp.setSpan(newStrikethroughSpan(),0,string.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textView.setText(sp);

效果如下:

望採納。

『肆』 Android中Path類的lineTo方法和quadTo方法畫線的區別

1. Path--->quadTo(float x1, float y1, float x2, float y2):
該方法的實現是當我們不僅僅是畫一條線甚至是畫弧線時會形成平滑的曲線,該曲線又稱為"貝塞爾曲線"(Bezier curve),其中,x1,y1為控制點的坐標值,x2,y2為終點的坐標值;
貝塞爾曲線的形成,就比如我們把一條橡皮筋拉直,橡皮筋的頭尾部對應起點和終點,然後從拉直的橡皮筋中選擇任意一點(除頭尾對應的點外)扯動橡皮筋形成的彎曲形狀,而那個扯動橡皮筋的點就是控制點;
2. Path--->lineTo(float x, float y) :

該方法實現的僅僅是兩點連成一線的繪制線路,這樣,當我們用這個方法繪制曲線時,缺陷就出來了;下面的例子,同樣還是和上面的Demo差不多,只不過Path調用的是lineTo方法,

『伍』 android 如何畫一條線


public class MainActivity extends Activity {
private ImageView iv;
private Bitmap baseBitmap;
private Canvas canvas;
private Paint paint;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.iv = (ImageView) this.findViewById(R.id.iv);
// 創建一張空白圖片
baseBitmap = Bitmap.createBitmap(480, 640, Bitmap.Config.ARGB_8888);
// 創建一張畫布
canvas = new Canvas(baseBitmap);
// 畫布背景為灰色
canvas.drawColor(Color.GRAY);
// 創建畫筆
paint = new Paint();
// 畫筆顏色為紅色
paint.setColor(Color.RED);
// 寬度5個像素
paint.setStrokeWidth(5);
// 先將灰色背景畫上
canvas.drawBitmap(baseBitmap, new Matrix(), paint);
iv.setImageBitmap(baseBitmap);

iv.setOnTouchListener(new OnTouchListener() {
int startX;
int startY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 獲取手按下時的坐標
startX = (int) event.getX();
startY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
// 獲取手移動後的坐標
int stopX = (int) event.getX();
int stopY = (int) event.getY();
// 在開始和結束坐標間畫一條線
canvas.drawLine(startX, startY, stopX, stopY, paint);
// 實時更新開始坐標
startX = (int) event.getX();
startY = (int) event.getY();
iv.setImageBitmap(baseBitmap);
break;
}
return true;
}
});
}
public void save(View view) {
try {
File file = new File(Environment.getExternalStorageDirectory(),
System.currentTimeMillis() + ".jpg");
OutputStream stream = new FileOutputStream(file);
baseBitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
// 模擬一個廣播,通知系統sdcard被掛載
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
intent.setData(Uri.fromFile(Environment
.getExternalStorageDirectory()));
sendBroadcast(intent);
Toast.makeText(this, "保存圖片成功", 0).show();
} catch (Exception e) {
Toast.makeText(this, "保存圖片失敗", 0).show();
e.printStackTrace();
}
}
}


『陸』 android 中如何畫一條動態的畫一條直線.(即從A到慢慢運動到B點的軌跡,走過後軌跡是一條線)

首先找到這條直線的所有點,然後開啟一個線程循環獲取點,用Handle發送消息去畫線
@Override
public void run() {
try {
for(int i = 0 ; i < myPointList.size(); i++)
{
MyPoint myPoint = myPointList1.get(i);
Message message = Message.obtain();
message.what = 2;
message.obj = myPoint;
mHandler.sendMessage(message);
Thread.sleep(100);
}
} catch (Exception e) {
e.printStackTrace();
}
}

『柒』 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;

}

『捌』 有沒有辦法在android的layout中畫出來一條線

可以利用TextView來實現,如果要水平線將textView的高設置為1設置背景顏色,豎線將寬設為1。如下代碼:

<TextView
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ffffff"
/>

『玖』 android實現一個簡單的畫布,可以用手指畫線條。

public class DrawView extends View {
Context mycontext;
int toasttime = 1000*60;
boolean enabletoast = true;
//之前的坐標
float preX;
float preY;
//路徑
private Path path;
//畫筆
public Paint paint = null;
//默認畫布大小
public static int VIEW_WIDTH = 500;
public static int VIEW_HEIGHT = 600;
//
Bitmap cacheBitmap = null;
//
Canvas cacheCanvas = null;

public DrawView(Context context, AttributeSet set) {
super(context, set);
mycontext = context;
cacheBitmap = Bitmap.createBitmap(VIEW_WIDTH, VIEW_HEIGHT,
Config.ARGB_8888);
cacheCanvas = new Canvas();

path = new Path();
cacheCanvas.setBitmap(cacheBitmap);

paint = new Paint(Paint.DITHER_FLAG);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(1);
paint.setAntiAlias(true);
paint.setDither(true);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_MOVE:
path.quadTo(preX, preY, x, y);
preX = x;
preY = y;
break;
case MotionEvent.ACTION_UP:
cacheCanvas.drawPath(path, paint);
path.reset();
if(enabletoast == false){

}
break;
}
invalidate();
return true;
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint bmpPaint = new Paint();
canvas.drawBitmap(cacheBitmap, 0, 0, bmpPaint);
canvas.drawPath(path, paint);
}

}

『拾』 Android進行螢幕上圖畫 點和點之間畫線

Android畫筆里里是可以設置斷斷續續的風格的,可是你的代碼里沒有設置,估計就是你模擬器的問題了

閱讀全文

與android畫線相關的資料

熱點內容
雲上伺服器貴州 瀏覽:645
qq三國怎麼使用雲伺服器 瀏覽:298
一鍵加密字體怎麼設置 瀏覽:143
majority演算法 瀏覽:820
如何開啟電腦的dlna伺服器 瀏覽:9
3提成怎麼演算法 瀏覽:970
php是不是解釋性語言 瀏覽:25
手機設置遠程定位伺服器地址 瀏覽:913
android模擬器裝apk 瀏覽:773
炒黃金app哪個好用 瀏覽:993
恐懼症app哪個最好用 瀏覽:288
億賽通加密軟體好用嗎 瀏覽:578
為什麼光遇排隊伺服器忙 瀏覽:826
哪個app能把手p瘦 瀏覽:253
java中的date類型 瀏覽:431
面向程序員的范疇論 瀏覽:57
如何查詢伺服器所有電腦名 瀏覽:902
shell命令jar 瀏覽:301
有什麼做手帳app 瀏覽:156
phpjquery源碼 瀏覽:886