package cn.androidy.thinking; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.SeekBar; import cn.androidy.thinking.drawables.DrawableBuilder; public class DrawableDemoActivity extends DemoDetailBaseActivity { private View view; private DisplayMetrics dm; private SeekBar radiusSeekbar; private SeekBar insetwidthSeekbar; private Drawable d; private int INIT_COLOR; private float INIT_INSETWIDTH; private float INIT_RADIUS; private int color; private float radius; private float insetWidth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = findViewById(R.id.view); radiusSeekbar = (SeekBar) findViewById(R.id.radiusSeekbar); insetwidthSeekbar = (SeekBar) findViewById(R.id.insetwidthSeekbar); dm = getResources().getDisplayMetrics(); INIT_COLOR = Color.RED; INIT_RADIUS = 2 * dm.density; INIT_INSETWIDTH = 1 * dm.density; color = INIT_COLOR; radius = INIT_RADIUS; insetWidth = INIT_INSETWIDTH; d = DrawableBuilder.createRoundedRectDrawable(color, radius, insetWidth); view.setBackground(d); radiusSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { radius = INIT_RADIUS + progress * 0.3f * dm.density; d = DrawableBuilder.createRoundedRectDrawable(color, radius, insetWidth); view.setBackground(d); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); insetwidthSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { insetWidth = INIT_INSETWIDTH + progress * 0.2f * dm.density; d = DrawableBuilder.createRoundedRectDrawable(color, radius, insetWidth); view.setBackground(d); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } boolean colorFlag = false; public void tabColor(View v) { if (colorFlag) { color = Color.RED; colorFlag = false; } else { color = Color.BLACK; colorFlag = true; } d = DrawableBuilder.createRoundedRectDrawable(color, radius, insetWidth); view.setBackground(d); } @Override protected int getLayoutId() { return R.layout.activity_drawable_demo; } @Override protected int getFloatingActionButtonId() { return 0; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_drawable_demo, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } else if (id == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } }