#2 JiVi
Zapomněl jsem vložit aktivitu do manifestu... Díky za rady
Příspěvky odeslané z IP adresy 46.33.117.–
Dobré dopoledne,
mám takový problém s načtením obrázku z SD karty, který si potom chci zobrazit v ImageView. Display je pouze ve vertikálním módu. A pokud ho chci zobrazit, tak aby se zobrazil musím mu upravit velikost. Šlo by ho vložit do nějakého slideru, abych nemusel měnit velikost? Popř. jak se to řeší jinak. Předem děkuji za odpovědi. Přídám zdrojové kódy:
final BitmapFactory.Options options = new BitmapFactory.Options();
// options.inSampleSize = 2;
// options.inPurgeable = true; //Tell to gc that whether it needs free memory, the Bitmap can be cleared
// options.inInputShareable = true; //Which kind of reference will be used to recover the Bitmap data after being clear, when it will be used in the future
final Uri imageUri = imageReturnedIntent.getData();
final InputStream imageStream = getContentResolver().openInputStream(imageUri);
Bitmap selectedImage = BitmapFactory.decodeStream(imageStream, null, options);
Display d = getWindowManager().getDefaultDisplay();
Point size = new Point();
d.getSize(size);
int h = size.x; // height in pixels
int w = size.y; // width in pixels
Bitmap scaled;
if (selectedImage.getWidth() < selectedImage.getHeight()) {
scaled = Bitmap.createScaledBitmap(selectedImage, h, w, true);
} else {
scaled = Bitmap.createScaledBitmap(selectedImage, w, h, true);
}
xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ImageView
android:id="@+id/show_pic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
Dobrý den,
mám naprogramovanou vlastní kameru a chtěl bych jí spustit po stisknutí tlačítka, ale po stisknutí spadne. Chyba musí být ve startActivity(i)... Nevíte, jak ji spustit, co dělám špatně?
Přidávám zdrojové kódy:
public class FirstActivity extends Activity {
private static final int camera = 2;
private TabHost tabs;
private Context context;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTabs();
ImageButton cmr = (ImageButton) findViewById(R.id.cam);
context = this;
cmr.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent i = new Intent(context, CameraActivity.class);
startActivity(i);
}
});
}
CameraActivity:
public class CameraActivity extends Activity {
ImageView shootBtn;
Activity context;
CameraPreview mPreview;
Camera camera;
Button exitButton;
LinearLayout progressLayout;
/**
* A safe way to get an instance of the Camera object.
*
* @return
*/
public static Camera getCameraInstance() {
Camera c = null;
try {
c = Camera.open(); // attempt to get a Camera instance
} catch (Exception e) {
// Camera is not available (in use or does not exist)
}
return c; // returns null if camera is unavailable
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mycamera);
context = this;
camera = getCameraInstance();
mPreview = new CameraPreview(context, camera);
FrameLayout preview = (FrameLayout) findViewById(R.id.camView);
preview.addView(mPreview);
}
Předem děkuji za jakékoli rady
Zdravim,
chtěl bych se zeptat, jak by šlo udělat obecně čtení(zápis) dat, aby to nebylo pouze pro soubory,objekty z/do souboru.
Děkuji za radu
Tento odkaz by měl už fungovat: http://www.inf.upol.cz/downloads/studium/PS/minimax.pdf
Vzal bych to trochu postupně a prvně bych chtěl probrat moji ohodnocovací funkci.
public int evaluation(int positionColumn, int positionRow) {
int score;
//materiálni ohodnocení
score = materialEvaluation(positionColumn, positionRow);
//zadní řady
score += backRow(positionColumn, positionRow);
//postranní pole
score += lateralSquare(positionColumn, positionRow);
return score;
}
- Materiální ohod. provede to,že pro hodnotu bílého kamene +2 a dámy +9 ,(černému ekvivalentně –2 a –9).
- Poziční ohod. +1,pokud je bílý kámen na straně pole nebo na své zadní straně.
Co vše bych zde měl ještě řešit?
Napadá mě pokud může skočit, tak pro bílý kámen přičti +10 za skok dámy 21.
Ahoj,
je tu někdo ochotný mi pomoct s implementací alg. Minimax.
Vycházím z těchto slidů:
Jestli ano, tak jsem postnu co mám a čemu nerozumim :-)
předem díky
Ahoj,
mám prosbu nemůžu přijít na výpočet rekurzivně hodnotu n-tého fibonacciho čísla.
Toto je můj špatný dosavadní kód:
unsigned int fib(unsigned short n) {
_asm {
mov ecx,dword ptr n;
cmp ecx,0;
je return0;
cmp ecx,1;
je return1;
dec ecx;
push ebx;
push ecx;
call fib;
pop ecx;
pop ebx;
dec ecx;
push ebx;
push ecx;
call fib;
pop ecx;
pop ebx;
mov [ebp + 12],ebx;
mov eax,ebx;
jmp konec;
return0:
jmp konec;
return1:
add ebx,1;
konec:
}
}
Nenapadá mě jak mám předávat výsledky :-/
Byl bych vděčný za nějaký vysvětlení.
Děkuji :-)
#6 ingiraxo
Takže jestli jsem to pochopil správě,tak v mainu si vytvořim vlákna pro zkoušku 2.
Thread vlakno1 = new FibThreed(n);
vlakno1.start();
Thread vlakno2 = new FibThreed(n);
vlakno2.start();
a dále mám nějakou třídu public static class FibThreed extends Thread {..}, u které přepíšu metodu run() ,ve které volám metodu pro výpočet fib. č. .
synchronized private int fib(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return fib(n - 1) + fib(n - 2);
}
Ale teď mně každé vlákno ten výpočet provede samotné pokud se nemýlím?Teď jsem skončil na tom jak je sesynchronizovat aby provedli jeden a tentýž výpočet jakoby společně...
#2 ingiraxo
To jsem si samozřejmě našel, ale nechápu jak můžu jeden výpočet provádět za pomoci k vláken?Jedině to jde tak, že se střídají... a mě nenapadá, (spíš asi nechápu) jak toho docílit?Když jsem se to snažil synchronizovat za pomoci synchronized, tak se mi výpočet provedl napr. 5x, když jsem zadal 5 vláken.
Ahoj,
zkousel jsem si napsat metodu, ktera by mne spocitala za pomoci rekurze fib. cislo.
Akorat nejak nechapu jak synchronizovat vlakna, ktery maji provadet vypocet.
Byl bych rad za nejaky rady co delam spatne a co vubec neresim atd.
predem dekuji
Prikladam zdrojac:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package up4jparfibvlakna;
/**
*
* @author johny
*/
public class Pokus {
public static int fib(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return fib(n - 1) + fib(n - 2);
}
public static int parfib(int n, int k) throws InterruptedException {
Thread[] threads = new Thread[k];
for (int i = 0; i < k; i++) {
threads[i] = new Thread(new FibThreed(n));
}
for (Thread t : threads) {
t.start();
}
for (Thread t : threads) {
t.join();
}
return FibThreed.getFibNumber();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws InterruptedException {
System.out.println(parfib(44, 5));
}
public static class FibThreed implements Runnable {
private int n;
private static int fibNumber = 0;
public FibThreed(int n) {
this.n = n;
}
@Override
public void run() {
fibNumber = fib(n);
}
public int getN() {
return n;
}
public static int getFibNumber() {
return fibNumber;
}
}
}
Zdravim,
máme úkol na procvičení zkusit a potřeboval bych poradit.Zadání:
Začal jsem využitím bit. pole pro uložení datumu,kde den zabírá 5 bitů,měsíc 4 bity a rok 7 bitu.
Pro uloženi roku je jen 7 bitu, což je pro nejvyšší uložené číslo 2^7 = 127.Tak k uloženému roku přičítám konstantu 1990.
Zde je zatím můj dosavadní kód:
// encode_date.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
typedef struct {
unsigned den :5;
unsigned mesic :4;
unsigned rok :7;
} DATUM;
DATUM dnes;
short encode_date(char day, char month, short year) {
dnes.den = day;
dnes.mesic = month;
dnes.rok = year - 1990;
return 0;
}
void decode_date(short date, int * day, int * month, int * year) {
}
int _tmain(int argc, _TCHAR* argv[])
{
encode_date(18,6,2013);
printf("%d", dnes.rok + 1990);
return 0;
}
Moc nechápu co má vracet short encode_date ? a jak kdyžtak dekodovat potom to datum.
Předem děkuji za rady.
#1 arny
Pro větší představu přidám pravidla hry:
Průběh hry
Obyčejný kámen se může pohybovat o jedno
pole vpřed (ortogonálně i diagonálně), pohyb
do stran a dozadu (ortogonálně i diagonálně)
není běžným kamenům dovolen.
Obyčejný kámen smí také přeskočit
nepřerušenou řadu vlastních obyčejných
kamenů a postavit se na první volné pole
na jejím konci a to opět pouze směrem vpřed
(ortogonálně i diagonálně).
Pokud se obyčejný kámen dostane na konci svého tahu na poslední (resp. první) řadu hrací
desky, mění se na dámu.
Dáma se pohybuje všemi směry (ortogonálně i diagonálně) o libovolný volný polí.
Zajímání soupeřových kamenů (obyčejných i dam) se provádí skákáním jako v klasické
dámě, ale pouze v ortogonálních směrech (vpřed, vzad, do stran).
Obyčejný kámen smí přeskočit soupeřův kámen, který se nachází na sousedním poli,
a dopadnout na volné pole bezprostředně za přeskočeným kamenem. Přeskočený kámen je
odstraněn z desky.
Dáma smí při skoku přeskočit libovolný počet volných polí, zajímanou soupeřovu figurku
a dopadnout na pole bezprostředně za ní ve směru skoku.
Vícenásobné skoky jsou dovoleny.
Skákání je povinné, pokud kámen může po provedeném skoku dál skákat, musí tuto možnost
využít. Nezáleží na celkové délce skoku, ani druhu zajatých kamenů.
Cau,
potreboval bych trosku pomoct s navrhem kontroly tahu u damy dameo.
Pro predstavu jak vypada spustena hra:
8|*||*||*||*||*||*||*||*|
7| ||*||*||*||*||*||*|| |
6| || ||*||*||*||*|| || |
5| || || || || || || || |
4| || || || || || || || |
3| || ||+||+||+||+|| || |
2| ||+||+||+||+||+||+|| |
1|+||+||+||+||+||+||+||+|
A B C D E F G H
Chcete-li ukoncit hru zmacknete 1
chcete-li pokracovat zmacknete 2: 2
hraje bily
Odkud chcete hrat(napr.A1):a1
[[D, 4, A, 2], [], [], []]
Kam chcete hrat(napr.A1):
a2
8|*||*||*||*||*||*||*||*|
7| ||*||*||*||*||*||*|| |
6| || ||*||*||*||*|| || |
5| || || || || || || || |
4| || || || || || || || |
3| || ||+||+||+||+|| || |
2|+||+||+||+||+||+||+|| |
1| ||+||+||+||+||+||+||+|
A B C D E F G H
hraje cerny
Takze, hra zatim probiha tak, ze zadam souradnici kterou chci hrat pro ni si zjistim vsechny mozne tahy,skoky.
Muzete videt i u vypisu [[D, 4, A, 2], [], [], []], kde prvni seznam obsahuje obyc tahy,druhy obyc skoky,treti pohyb damou ,ctvrty skoky damou.
Mam ted problem s tim jak to kontrolovat.
delal sem to ted takto, ale hrozne jsem se do toho zamotal :-(
List skok = (List) seznamSouradnic.get(1);
List pohyb = (List) seznamSouradnic.get(0);
if (skok.size() > 0 && (c1 != skok.get(0) && i1 != skok.get(1))) {
while (c1 != skok.get(0) && i1 != skok.get(1)) {
System.out.print("Musis skakat");
s1 = kam();
c1 = s1.charAt(0);
i1 = Character.digit(s1.charAt(1), 10);
c1 = Character.toUpperCase(c1);
}
} else if (pohyb.size() > 0 && !najdi(c1, i1, pohyb)) {
while (!najdi(c1, i1, pohyb)) {
System.out.print("Zadal si nepovoleny tah,zkus znovu:");
s1 = kam();
c1 = s1.charAt(0);
i1 = Character.digit(s1.charAt(1), 10);
c1 = Character.toUpperCase(c1);
}
}
Skoky maji prednost pred obyc. tahama.
Takze potrebuji nejak poresit kdyz muzu skakat,abych mohl zadat jen skoky.
Kdyz pohyb tak jen pohyb ale jen na povony tah.
A jeste mensi problem ze u skoku damou mne vypise tah, ale nevymaze se mne preskocena figurka, ale to bych resil
napr. tak, ze zjistim smer a smazu o pozici mene nez kde se zrovna nachazi.
dekuji za jakouko-li pomoc s navrhem :-)
#10 Buco
Uz sem se pohl a potrebuju poradit s posledni veci.
Udelal sem ukol 3 v IDE funguje,potom sem napsal ant-skript a vytvoril sem si knihovnu.jar a ted bych potreboval spustit program pres terminal za pomoci java -jar simple-graphics.jar, ale nejdriv potrebuju upravit v simple-graphics.jar manifest, mam tam neco takovyho:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_24-b24 (Sun Microsystems Inc.)
Main-Class: zde ma byt cesta k tomu souboru, kde mam metodu main ??jestli jo tak mne to nejde
Vyhazuje to takovou chybu:
/Plocha/10/dist$ java -jar simple-graphics.jar
Exception in thread "main" java.lang.NoClassDefFoundError: InputOutput
Caused by: java.lang.ClassNotFoundException: InputOutput
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: InputOutput. Program will exit.