안 드 로 이 드 멀티미디어 의 화판 개발 사례 공유

본 논문 의 사례 는 안 드 로 이 드 멀티미디어 의 화판 개발 의 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
먼저 효과 보기:

사실 화판 의 원 리 는 매우 간단 하 다.바로 먼저 스크린 을 누 른 점 을 기록 한 다음 에 한 번 이동 할 때마다 이 두 번 이동 하 는 점 을 연결 시 키 고 반복 하면 이미 지 는 여러 직선 으로 구성 된다.
핵심 코드:

public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener {

  private View red_view,green_view,blue_view;   //           
  private SeekBar seekBar;    //          
  private ImageView iv;  
  private Bitmap bitmap,backgroud;  //      
  private Canvas canvas;       //  
  private Paint paint;        //  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    red_view = findViewById(R.id.red_view);
    green_view = findViewById(R.id.green_view);
    blue_view = findViewById(R.id.blue_view);
    seekBar = (SeekBar) findViewById(R.id.seekbar);
    iv = (ImageView) findViewById(R.id.iv);
    iv.setImageResource(R.drawable.bg);
    //     
    backgroud = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
    //             
    bitmap = Bitmap.createBitmap(backgroud.getWidth(), backgroud.getHeight(), backgroud.getConfig());
    //         
    canvas = new Canvas(bitmap);
    //    
    paint = new Paint();
    paint.setColor(Color.BLACK);//         
    paint.setStyle(Style.STROKE);//       
    //      
    Matrix matrix = new Matrix();
    //      
    canvas.drawBitmap(backgroud, matrix, paint);
    red_view.setOnClickListener(this);
    green_view.setOnClickListener(this);
    blue_view.setOnClickListener(this);
    seekBar.setOnSeekBarChangeListener(this);
    iv.setOnTouchListener(new OnTouchListener() {
      float startX;
      float startY;
      @Override
      public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        //        
        case MotionEvent.ACTION_DOWN:
          startX = event.getX();
          startY = event.getY();
          break;
        //        
        case MotionEvent.ACTION_MOVE:
          float stopX = event.getX();
          float stopY = event.getY();
//          //              
          canvas.drawLine(startX, startY, stopX, stopY, paint);
          //      (      )
          startX = event.getX();
          startY = event.getY();

          iv.setImageBitmap(bitmap);
          break;
        case MotionEvent.ACTION_UP:
          break;
        default:
          break;
        }
        return true;
      }
    });
  }
  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.red_view:
      //                   
      paint.setColor(Color.RED);
      break;
    case R.id.green_view:
      //                   
      paint.setColor(Color.GREEN);
      break;
    case R.id.blue_view:
      //                   
      paint.setColor(Color.BLUE);
      break;
    default:
      break;
    }
  }
  //            
  @Override
  public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser) {

  }
  //       
  @Override
  public void onStartTrackingTouch(SeekBar seekBar) {

  }
  //       
  @Override
  public void onStopTrackingTouch(SeekBar seekBar) {
    int progress = seekBar.getProgress();//          100
    paint.setStrokeWidth(progress/10f);//         (0-10)
  }
}
해 보 니 간단 하군.어서 해 보 게!
또 금요일 이 되 었 습 니 다.즐 거 운 주말 되 세 요.여러분 들 이 편집장 에 대한 지지 에 감 사 드 립 니 다.편집장 님 은 반드시 더욱 분발 하여 여러분 들 에 게 더 많은 멋 진 글 을 공유 할 것 입 니 다.

좋은 웹페이지 즐겨찾기