小编smb*_*smb的帖子

动态绘制自定义圆弧段

我的客户想在应用程序中使用以下小部件:
在此输入图像描述
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)

android

10
推荐指数
2
解决办法
9697
查看次数

在设置onClickListener之前检查View == null

我通常创建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

1
推荐指数
1
解决办法
4503
查看次数

标签 统计

android ×2