安卓 刮刮乐

来源:互联网 发布:开元知海e读 编辑:程序博客网 时间:2024/05/18 03:50

<strong><span style="font-size:18px;">什么都不说 ,直接贴代码</span></strong>

package com.example.guale;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Bitmap.Config;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PorterDuff.Mode;import android.graphics.PorterDuffXfermode;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class EraseView extends View {private boolean isMove = false;private Bitmap bitmap = null;private Bitmap frontBitmap = null;private Path path;private Canvas mCanvas;private Paint paint;public EraseView(Context context, AttributeSet attrs) {super(context, attrs);}@Overrideprotected void onDraw(Canvas canvas) {    if (mCanvas == null) {    EraseBitmp();    } canvas.drawBitmap(bitmap, 0, 0, null);mCanvas.drawPath(path,paint);super.onDraw(canvas);}public void EraseBitmp() {bitmap = Bitmap.createBitmap(getWidth(),getHeight(), Bitmap.Config.ARGB_4444);//生成的抽奖的前面布局frontBitmap = CreateBitmap(Color.GRAY,getWidth(),getHeight());paint = new Paint();// 设置paint的风格为“空心”// 当然也可以设置为"实心"(Paint.Style.FILL)paint.setStyle(Paint.Style.STROKE);paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));//设置为无锯齿//paint.setAntiAlias(true);paint.setDither(true);paint.setStrokeJoin(Paint.Join.ROUND);paint.setStrokeCap(Paint.Cap.ROUND);//设置外围宽度paint.setStrokeWidth(30);path = new Path();mCanvas = new Canvas(bitmap);mCanvas.drawBitmap(frontBitmap, 0, 0,null);}@Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubfloat ax = event.getX();float ay = event.getY();if (event.getAction() == MotionEvent.ACTION_DOWN) {isMove = false;path.reset();path.moveTo(ax, ay);invalidate();return true;} else if (event.getAction() == MotionEvent.ACTION_MOVE) {isMove = true;path.lineTo(ax,ay);invalidate();return true;}return super.onTouchEvent(event);}public  Bitmap CreateBitmap(int color,int width, int height) {int[] rgb = new int [width * height];for (int i=0;i<rgb.length;i++) {rgb[i] = color;}return Bitmap.createBitmap(rgb, width, height,Config.ARGB_4444);}}</span>
2.布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >   <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginLeft="30dp"        android:layout_marginTop="100dp"        >                <TextView            android:id="@+id/textView1"            android:layout_width="300dp"            android:layout_height="150dp"            android:textSize="25dp"            android:gravity="center_vertical|center_horizontal"            android:background="@android:color/white"            />                <com.example.guale.EraseView        android:id="@+id/eraseView1"        android:layout_width="300dp"        android:layout_height="150dp"/>            </RelativeLayout></LinearLayout>
3.主文件
package com.example.guale;import java.util.ArrayList;import java.util.List;import java.util.Random;import com.example.guale.R;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {private TextView textView;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = (TextView) findViewById(R.id.textView1);initData();}private void initData() {List<String> rewards=new ArrayList<String>();rewards.add("乡下人别乱摸");rewards.add("恭喜中奖一毛,已存入零钱");rewards.add("404");rewards.add("520,局部地震");rewards.add("优衣库试衣间代金券");rewards.add("夏陌陌炮友面基");rewards.add("小拇指体验一次");rewards.add("什么都没有");rewards.add("抽到一坨屎");rewards.add("城会玩");//生成随机数int max=9;        int min=0;        Random random = new Random();        int s = random.nextInt(max)%(max-min+1) + min;        textView.setText(rewards.get(s));}}



0 0
原创粉丝点击