我正在尝试使用Canvas.drawLine方法绘制多边形
这是我正在使用的代码
Canvas canvas = new Canvas(cache);
Paint paint = new Paint();
paint.setStrokeWidth(16);
paint.setColor(this.currentDrawing.getColor());
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
systemCanvas.drawBitmap(cache, 0, 0, paint);
paint.setStrokeCap(Cap.ROOUND);
canvas.drawLine(from.getLeft(), from.getTop(), to.getLeft(), to.getTop(), paint);
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:

注意线条渲染的方式,它们在圆形形状上打破并且不能平滑地连接.我明白为什么会这样,但我不知道如何使它顺利和一致.
任何帮助表示赞赏.
刚刚完成开始教程,虽然我的应用运行正常,但我只是想确保我的Android术语正确.
例如,我经历的第一个应用程序教程是否修改了activity_main.xml以包含:
<EditText android:id="@+id/edit_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message"
android:layout_weight="1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"
android:onClick="sendMessage" />
Run Code Online (Sandbox Code Playgroud)
我是否理解这些(EditText,Button)元素本身是单独的视图?换句话说,上面的代码包含两个"视图",而不是两个"控件"?稍后在代码中我们遇到了一个名为TextView的东西,它直接在其中包含"View"一词,而其他的则没有,这有点让我失望.
我唯一的另一个经验是ASP.Net和C#web开发,所以我想我的问题可以表达为,Android"Views"相当于ASP.Net Web Controls(asp:DropDownList,asp:Button等)?如果我想在上面的代码中添加更多控件,比如更多按钮,我会说,"我要为这个布局添加更多视图?" 或者是,"我要为这个视图添加更多控件?" 要么...?
可能重复:
活动何时完成绘图?
我想知道视图何时完成绘图,这可能吗?如果android完成了绘制视图,我怎么能理解?
如何为achartengine的蠕虫图线为曲线下的区域着色.
我尝试在linearlayout的gridview下面添加按钮,代码如下.但是当我执行我的应用程序时,我只看到gridview没有按钮项目.所以它可能是基本的错误,但我看不到它.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="#2a2a2a"
>
<GridView
android:id="@+id/grid_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnWidth="150dp"
android:numColumns="auto_fit"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"></GridView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="@string/cam_string" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我有一个自定义视图(CoordinateGridView),我在XML布局(activity_trajectory.xml)中使用:
<com.android.catvehicle.CoordinateGridView
android:id="@+id/coordinateGrid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />
Run Code Online (Sandbox Code Playgroud)
我在图形编辑器中收到此错误:**.CoordinateGridView无法实例化.
Android图形编辑器出错http://i42.tinypic.com/2w3b9f5.png
这是我在自定义视图中的构造函数:
public CoordinateGridView(Context context, AttributeSet attrs) {
super(context, attrs);
setFocusable(true);
setFocusableInTouchMode(true);
this.setOnTouchListener(this);
hostActivity = (TrajectoryActivity) this.getContext();
}
Run Code Online (Sandbox Code Playgroud)
这是我在其中使用CoordinateGridView设置布局的Activity:
public class TrajectoryActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
removeActionBar();
setContentView(R.layout.activity_trajectory);
initializeViews();
loadSettings();
}
}
Run Code Online (Sandbox Code Playgroud)
有关这个问题的任何想法吗?由于我的自定义视图阻止了布局中的所有其他视图,因此无法在图形编辑器中看到任何内容令人沮丧...
简单来说,下面的语句在添加到活动时会做什么?
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud) 我有以下方法,我想展示一个Snackbar.问题是,我没有我的活动view,我不知道如何得到它.在代码中,你会发现Snackbar view是viewInflate_setup,但它不工作.我知道它不起作用,因为这是我的视图,alertdialog而不是我当前的屏幕.我已经尝试了root view但是然后snackbar显示在错误的地方(在这三个android按钮后面).我如何获得我的活动View?
public void confirmPassword(){
final LayoutInflater inflateSetup = getLayoutInflater();
final View viewInflate_setup = inflateSetup.inflate(R.layout.inflate_setup, null);
AlertDialog.Builder alertSetup = new AlertDialog.Builder(this);
alertSetup.setView(viewInflate_setup);
final AlertDialog dialogSetup = alertSetup.create();
dialogSetup.show();
btnConfirmPassowod = (Button)viewInflate_setup.findViewById(R.id.btnConfirm);
btnConfirmPassowod.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
System.out.println("User has clicked the [confirm] button");
dialogSetup.setCancelable(false);
edtPassword3 = (EditText)viewInflate_setup.findViewById(R.id.edtPassword3);
SUpassword3 = edtPassword3.getText().toString();
final ParseUser beforeConfirmPassword = ParseUser.getCurrentUser();
ParseUser.logInInBackground(beforeConfirmPassword.getUsername(), SUpassword3, new LogInCallback() …Run Code Online (Sandbox Code Playgroud) 我必须在图标和NavigationView图像中的箭头之间添加左边距:
我知道根据谷歌的规格,这个保证金必须有,16dp但我需要改变它.我试过了:
<dimen tools:override="true" name="design_navigation_icon_padding">64dp</dimen>
<dimen tools:override="true" name="design_navigation_separator_vertical_padding">20dp</dimen>
Run Code Online (Sandbox Code Playgroud)
但仍然没有工作.有任何想法吗?