Android作业四
生活随笔
收集整理的這篇文章主要介紹了
Android作业四
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
例4_4
設計一個在屏幕上移動小球的程序
布局文件源碼
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.my4_1.MainActivity"><com.example.my4_1.TestViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/testview1"/></LinearLayout>設計圖圖形自定義組件
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View;class TestView extends View {int x = 150, y = 50;public TestView(Context context, AttributeSet attrs) {super(context, attrs);}void getXY(int _x, int _y) {//獲取坐標x = _x;y = _y;}protected void onDraw(Canvas canvas) {super.onDraw(canvas);canvas.drawColor(Color.CYAN);Paint paint = new Paint();paint.setAntiAlias(true);paint.setColor(Color.BLACK);canvas.drawCircle(x, y, 30, paint);//繪制圓paint.setColor(Color.WHITE);canvas.drawCircle(x - 9, y - 9, 6, paint);paint.setStrokeWidth(3);paint.setColor(Color.WHITE);canvas.drawRect(10, 10, 70, 70, paint);} }主控文件
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View;public class MainActivity extends AppCompatActivity {TestView tView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tView =(TestView)findViewById(R.id.testview1);tView.setOnTouchListener(new mOnTouch());}class mOnTouch implements View.OnTouchListener{public boolean onTouch(View v, MotionEvent event){int x1,y1;x1=(int)event.getX();y1=(int)event.getY();if(event.getAction()==MotionEvent.ACTION_DOWN){繪制移動中的小球tView.getXY(x1,y1);if(x1<=10&&y1<=10){MainActivity.this.finish();}tView.invalidate();return true;}else if(event.getAction()==MotionEvent.ACTION_MOVE){//繪制移動中的小球tView.getXY(x1,y1);if(x1<=10&&y1<=10){MainActivity.this.finish();}tView.invalidate();return true;}return tView.onTouchEvent(event);}} }結果圖
例4_5
設計一個能在圖片上涂鴉的文件
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"android:orientation="vertical"><com.example.my4_5.HandWriteandroid:layout_width="fill_parent"android:layout_height="380dp"android:id="@+id/handwriteview"/><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:gravity="center_horizontal"><Buttonandroid:layout_width="200dp"android:layout_height="wrap_content"android:text="clear"android:id="@+id/clear"/></LinearLayout> </LinearLayout>主控文件
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button;public class MainActivity extends AppCompatActivity {private HandWrite handWrite=null;private Button clear=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//此處調用主布局文件,與書本不一致handWrite=(HandWrite)findViewById(R.id.handwriteview);clear=(Button)findViewById(R.id.clear);clear.setOnClickListener(new mClick());}private class mClick implements View.OnClickListener{@Overridepublic void onClick(View v) {handWrite.clear();}} }HandWrite.java
import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; 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 HandWrite extends View {Paint paint=null;Bitmap originalBitmap=null;Bitmap new1_Bitmap=null;Bitmap new2_Bitmap=null;float startX=0,startY=0; //劃線起點坐標float clickX=0,clickY=0; //劃線終點坐標boolean isMove=true;boolean isClear=false;int color= Color.GREEN;float strokeWidth=2.0f;public HandWrite(Context context, AttributeSet attrs){super(context,attrs);originalBitmap= BitmapFactory//獲取原始資源.decodeResource(getResources(),R.drawable.icon).copy(Bitmap.Config.ARGB_8888,true);new1_Bitmap=Bitmap.createBitmap(originalBitmap);//建立原始圖像位置}public void clear(){isClear=true;new2_Bitmap=Bitmap.createBitmap(originalBitmap);invalidate();//清除圖像}public void setstyle(float strokeWidth){this.strokeWidth=strokeWidth;}protected void onDraw(Canvas canvas){super.onDraw(canvas);canvas.drawBitmap(HandWriting(new1_Bitmap),0,0,null);}public Bitmap HandWriting(Bitmap o_Bitmap){Canvas canvas=null;if(isClear){canvas=new Canvas(new2_Bitmap);}else{canvas=new Canvas(o_Bitmap);}paint=new Paint();paint.setStyle(Paint.Style.STROKE);paint.setAntiAlias(true);paint.setColor(color);paint.setStrokeWidth(strokeWidth);if(isMove){//劃線canvas.drawLine(startX,startY,clickX,clickY,paint);}startX=clickX;startY=clickY;if(isClear){return new2_Bitmap;//返回新圖像}return o_Bitmap;//若清屏,返回原圖像}public boolean onTouchEvent(MotionEvent event){clickX=event.getX();clickY=event.getY();if(event.getAction()==MotionEvent.ACTION_DOWN){isMove=false;invalidate();return true;}else if(event.getAction()==MotionEvent.ACTION_MOVE){isMove=true;invalidate();return true;}return super.onTouchEvent(event);} }結果圖
總結
以上是生活随笔為你收集整理的Android作业四的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [css] margin和padding
- 下一篇: 16攻击行为的学习理论