編輯:關於Android編程
首先自定義一個View子類:
package com.example.androidtest0.myView;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class DrawView extends View {
public float currentX = 40;
public float currentY = 50;
//定義、並創建畫筆
Paint p = new Paint();
public DrawView(Context context) {
super(context);
}
public DrawView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//設置畫筆的顏色
p.setColor(Color.RED);
//繪制一個小球
canvas.drawCircle(currentX, currentY, 15, p);
}
/**
* 為該組件的觸碰事件重寫事件處理方法
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
//修改currentX、currentY兩個屬性
currentX = event.getX();
currentY = event.getY();
//通知當前組件重繪自己
invalidate();
return true;
}
}
custom_layout.xml
主activity:
package com.example.androidtest0; import com.example.androidtest0.myView.DrawView; import android.app.Activity; import android.os.Bundle; import android.widget.LinearLayout; public class CustomView extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.custom_layout); //獲取布局文件中LinearLayout容器 LinearLayout root = (LinearLayout)findViewById(R.id.root); //創建DrawView組件 final DrawView drawView = new DrawView(this); //設置自定義組件的最小寬度、高度 drawView.setMinimumWidth(10); drawView.setMinimumHeight(10); root.addView(drawView); } }效果:
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+s/20y9auzeKjujwvcD4KPHA+u7m/ydLU08NYTUy1xLe9yr2jutKyysfK18/IvajSu7j2Vmlld7XE19PA4KOsus3Jz8Pm0rvR+aGjyLu689b3vefD5lhNTMjnz8KjujwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">
package com.example.androidtest0;
import com.example.androidtest0.myView.DrawView;
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
public class CustomView extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_layout);
}
}
Android的基本世界觀——系統簡介,組件邏輯及其他
前言作為一個有半年余Android Developing折騰經驗的Android Developer(為什麼不說“開發經驗”呢?因為我仔細想了想,
Android實現刮刮樂示例分析
微信公眾號有很多都做刮刮樂的活動,本文就實現了刮刮樂的效果,具體代碼如下:首先要做一個類似橡皮擦的東西吧,然後才能把紙上的筆跡擦除 /** * FileN
SEAndroid安全機制對Android屬性訪問的保護分析
Android系統通過屬性暴露設備和運行時信息,並且可以通過設置屬性來控制系統行為。因此,屬性也像文件一樣,是一種需要保護的資源。在啟用SEAndroid之前,敏感屬性只
在Android中使用Java 8的lambda表達式
在Android中使用Java 8的lambda表達式作為一名Java開發者,或許你時常因為缺乏閉包而產生許多的困擾。幸運的是:Java’s 8t