我的客户想在应用程序中使用以下小部件:
在Text来自服务器.梯度角取决于也来自服务器的变量.此外,客户希望动态填充渐变(用户必须从0开始查看渐变的填充方式).
现在我执行以下操作:我使用两个图像 - 一个是彩色圆圈,第二个是灰色圆圈.我创建一个具有一定角度的圆弧段并将其作为遮罩应用于灰色圆圈,然后将彩色圆圈与新的灰色圆圈(扇形截止的位置)组合在一起.
这是我的代码.我初始化调用的变量initializeVarsForCompoundImDrawing,然后在第二次调用中调用几次,makeCompoundImage最后调用nullVarsForCompoundImDrawing以释放资源:
private static Bitmap notColoredBitmap;
private static Bitmap coloredBitmap;
private static Bitmap notColoredWithMaskBitmap;
private static Bitmap finalBitmap;
private static Canvas notColoredWithMaskCanvas;
private static Paint paintForMask;
private static Paint smoothPaint;
private static Canvas finalCanvas;
private static RectF rectForMask;
public static void initializeVarsForCompoundImDrawing()
{
Context context = MainApplication.getContext();
notColoredBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.not_colored);
coloredBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.colored);
paintForMask = new Paint(Paint.ANTI_ALIAS_FLAG);
paintForMask.setStyle(Paint.Style.FILL);
paintForMask.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
rectForMask = new RectF(0, 0, notColoredBitmap.getWidth(), …Run Code Online (Sandbox Code Playgroud) 我通常创建initialize()用于设置on-click侦听器的函数和函数,然后从Activity中调用这些函数onCreate().当我打电话给someView.setOnClickListener(...)某个功能时,我应该检查一下是否someView == null?我知道,它!= null,但我需要一个关于编码风格的建议.哪种是最佳做法?
这是一个例子:
...
public class SomeActivity extends Activity
{
private ImageButton someButton;
private Intent someIntent;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.add_alarm);
initialize();
setSomeButtonHandler();
}
public void initialize()
{
someButton = (ImageButton) findViewById(R.id.someButton);
}
public void setSomeButtonHandler()
{
if(someButton != null) //Should I check this?
{
someIntent = new Intent(SomeActivity.this, SomeButtonActivity.class);
someButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
startActivity(someIntent);
}
});
}
}
}
Run Code Online (Sandbox Code Playgroud) android ×2