我正在将WPF应用程序转换为Silverlight.
该应用程序包含一个继承自Shape的类.它会覆盖DefiningGeometry属性以返回Path对象.但是,Silverlight Shape类没有DefiningGeometry属性.
在互联网上阅读我发现其他人有同样的问题.该解决方案似乎涉及直接从Control继承,并将Content属性设置为路径.但是,我还想保留我的事件处理程序(MouseEnter,MouseLeave,GotFocus,LostFocus)以及我希望保持它的位置并按比例调整应用程序的其余部分.
我主要是一个后端开发人员,所以这不是我的强项 - 如果有人能给我一个如何实现这一目标的大纲样本,我会很感激.
我喜欢在Visio 2010中添加的Wireframe模板和相应的形状.但是我似乎无法找到的一件事(不是在Visio,Office帮助或使用Google)是绘制表格控件的好方法.
唯一的内置形状是一个列表框,我可以将几个链接在一起.然而,这有几个缺点,因为这使我在表中没有"行".
有没有人对如何做到这一点有一个很好的建议?我更喜欢一种了解Visio2010"主题"内容的形状,但是在这一点上,任何在线框中绘制网格的快捷方式都会非常受欢迎.
PS.在"桌子"上搜索形状给了我可爱的野餐桌形状但没有可用的网格.搜索"网格"给了我一两个不太特别有用的形状.
我试图制作一个散点图,每个点的颜色对应一个变量,每个点的形状对应另一个变量.这是一些示例数据和我用于制作第二个图的代码:
Example data:(of 3 points)
X Y att1 att2
.5 .5 1 A
.24 .8 3 B
.6 .7 5 C
code:(for image2)
> plot(X,Y, col=statc[att2], pch = 15)
> legend("right", statv, fill=statc)
Where:
> statv
[1] "A" "B" "C"
> statc
[1] "red" "blue" "orange"
Run Code Online (Sandbox Code Playgroud)
我已经单独完成了这项工作,但不知道如何做到这两点.这是两个图:


例如:我希望颜色应用于具有相同att1的点和要应用于具有相同att2的点的形状
我正在尝试制作自定义的ViewGroup布局形状,布局是星形或心形,三角形甚至使线条对角线.
因此,目标是为两个或更多ImageView制作拼贴视图.


有人可以给我一个图书馆或一个方法来做这个伎俩吗?
我想制作一个像这个程序的自定义按钮,也许是一个径向渐变.
我将视图子类化,并绘制三个形状drawable,然后绘制文本.文本似乎偏离中心,所以我试图为文本绘制一个边界矩形,但那里没有运气.并计划添加一个点击监听器来获取类似行为的按钮.
也许我应该是子类按钮,但是在哪里绘制我的drawables所以他们不会被按钮的文本绘制搞乱.
任何指针将不胜感激.
谢谢
Edit2:看下面的第二次尝试.
Edit3:赏金的原因是弄清楚为什么子类化drawable不起作用.梯度不是那么重要.
edit4:在DrawableView :: OnDraw()中的getTextBounds()之前发现了drawRect.
package acme.drawables;
import android.content.*;
import android.content.pm.*;
import android.graphics.*;
import android.graphics.drawable.*;
import android.graphics.drawable.shapes.*;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.*;
import android.view.Menu;
import android.view.View;
import android.widget.*;
import static java.lang.Math.*;
public class MainActivity extends AppCompatActivity {
DrawableView drawableView;
LinearLayout row(boolean isRow1) {
LinearLayout layout=new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(w,d);
int m=(int)round(w*margin);
layoutParams.setMargins(m,m,m,m);
for(int i=0;i<n;i++)
layout.addView(drawableView=new DrawableView(this,i,isRow1),layoutParams);
return layout;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
DisplayMetrics metrics=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
w=d=(int)round(metrics.densityDpi);
LinearLayout …Run Code Online (Sandbox Code Playgroud) 这是我想要做的:我有这个比例xml:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/mydrawable"
android:scaleGravity="bottom"
android:scaleHeight="50%" />
Run Code Online (Sandbox Code Playgroud)
我想将它与这个可绘制的xml一起使用:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="#FFFFFFFF"
android:endColor="#FFFF0000"
android:angle="90" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
然后我将scale xml设置为LinearLayout的背景,但我没有看到任何内容.我错过了什么或者不可能这样做(使用XML)?
从图像中检索轮廓时,每个斑点应获得2个轮廓 - 一个内部轮廓和一个外部轮廓.考虑下面的圆圈 - 由于圆是一条像素宽度大于1的线,您应该能够在图像中找到两个轮廓 - 一个来自圆的内部,一个来自外部.
使用OpenCV,我想检索INNER轮廓.但是,当我使用findContours()时,我似乎只是在获得外部轮廓.如何使用OpenCV检索blob的内部轮廓?
我使用的是C++ API,而不是C,因此只建议使用C++ API的函数.(即findContours()而不是cvFindContours())
谢谢.

我正在开始一个新的应用程序,我使用ActionBarSherlock和HoloEverywhereLib.我的min和目标SDK是相同的(10/2.3.3).这只是我可以使用他们拥有的Android运行时快速将其移植到亚马逊Kindle和BB10(已经使用此设置为另一个应用程序,它没有问题).应用程序应该尽可能接近ICS/JB.
对于我的EditTexts,我给他们一个Girgerbread/iOS(圆角,但没有阴影)看他们
几个星期前有人向我提到要抓住Gingerbread的drawable并将它们用于我的EditTexts.但我开始使用我在S/O找到的另一个答案,非常简单:
<EditText
background:"@drawable/edittext_round_white"
..../>
Run Code Online (Sandbox Code Playgroud)
&我的edittext_round_white.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:radius="8dp"/>
<stroke android:width="1dp"
android:color="#444"/>
<solid android:color="#FFFFFF" />
</shape>
Run Code Online (Sandbox Code Playgroud)
现在,当我运行应用程序时,有两件事情是不对的
a)根本没有"焦点"(我知道我需要实现这一点,这是问题的关键)
b)光标在我的edittext中根本没有出现(灰色垂直线暗示输入所指向的edittext中的位置)
对于a)我假设我要使用某种选择器或列表,对吧?怎么样?我是Android的样式新手,任何帮助将不胜感激.我唯一要改变的是笔触颜色.
对于b)如何让光标显示?
这里的任何提示/链接/等都非常受欢迎!
我想知道判断Shape对象是否与另一个形状相交的最佳方法.目前我在我的游戏中进行了碰撞检测,只要它涉及一个与矩形相交的形状,反之亦然.我遇到的问题是Shape类中的intersects()方法只能将Rectangle或Point作为参数,而不是另一个Shape.有没有一种有效的方法来测试两个Shape对象是否以任何方式重叠?我尝试过的一种方法是使用for循环生成一个点区域来测试它们是否在形状中,然后构建一个Point对象数组以发送到另一个形状进行测试,但这显着降低了我的帧率因为所有不必要的比较.
我在这里寻找并寻找类似的东西,但没有找到任何真正的东西.如果这是重复,请提前抱歉.
保存在res/drawable/gradient_box.xml的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#FFFF0000"
android:endColor="#80FF00FF"
android:angle="45"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="8dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
(上面的形状定义取自当时的Android开发者指南.它没有错误.).
让我们尝试将它与TextView一起使用:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Text with some crazy rectangle shape below it."
android:drawableBottom="@drawable/gradient_box"/>
Run Code Online (Sandbox Code Playgroud)
TextView显示就好像drawableBottom属性不在那里!但是,将形状设置为背景可以正常工作:
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Text with crazy background"
android:background="@drawable/gradient_box"/>
Run Code Online (Sandbox Code Playgroud)
将实际图像(例如a*.png)设置为android:drawableBottom也可以正常工作.
有任何想法吗?